summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2008-05-10 21:14:29 +0000
committerchristos <christos@NetBSD.org>2008-05-10 21:14:29 +0000
commitc82bd19f3b550b4e3ef522fc007f5465ddcaa019 (patch)
treed6a7c3403c2342cd64e2f5e26fc523a2a37198ca
parent4c514b977f026d1691622ee8bf7277c4705c74cd (diff)
replace all assembly.
-rw-r--r--lib/libcrypto/arch/i386/Makefile13
-rw-r--r--lib/libcrypto/arch/i386/aes-586.S3238
-rw-r--r--lib/libcrypto/arch/i386/aes.inc3
-rw-r--r--lib/libcrypto/arch/i386/bf-586.S896
-rw-r--r--lib/libcrypto/arch/i386/bf-686.S864
-rw-r--r--lib/libcrypto/arch/i386/bf.inc16
-rw-r--r--lib/libcrypto/arch/i386/bf_enc_586.S759
-rw-r--r--lib/libcrypto/arch/i386/bf_enc_686.S731
-rw-r--r--lib/libcrypto/arch/i386/bf_enc_x86.S13
-rw-r--r--lib/libcrypto/arch/i386/bn-586.S1384
-rw-r--r--lib/libcrypto/arch/i386/bn.inc16
-rw-r--r--lib/libcrypto/arch/i386/bn_asm_586.S909
-rw-r--r--lib/libcrypto/arch/i386/bn_comba_586.S1301
-rw-r--r--lib/libcrypto/arch/i386/cast-586.S935
-rw-r--r--lib/libcrypto/arch/i386/cast.inc3
-rw-r--r--lib/libcrypto/arch/i386/co-586.S1254
-rw-r--r--lib/libcrypto/arch/i386/crypt586.S879
-rw-r--r--lib/libcrypto/arch/i386/des-586.S1839
-rw-r--r--lib/libcrypto/arch/i386/des.inc5
-rw-r--r--lib/libcrypto/arch/i386/md5-586.S679
-rw-r--r--lib/libcrypto/arch/i386/md5.inc14
-rw-r--r--lib/libcrypto/arch/i386/md5_dgst_586.S738
-rw-r--r--lib/libcrypto/arch/i386/rc4-586.S238
-rw-r--r--lib/libcrypto/arch/i386/rc4.inc3
-rw-r--r--lib/libcrypto/arch/i386/rc5-586.S564
-rw-r--r--lib/libcrypto/arch/i386/ripemd.inc14
-rw-r--r--lib/libcrypto/arch/i386/rmd-586.S1965
-rw-r--r--lib/libcrypto/arch/i386/rmd_dgst_586.S2024
-rw-r--r--lib/libcrypto/arch/i386/sha.inc13
-rw-r--r--lib/libcrypto/arch/i386/sha1-586.S1442
-rw-r--r--lib/libcrypto/arch/i386/sha1_586.S2036
-rw-r--r--lib/libcrypto/arch/i386/sha256-586.S261
-rw-r--r--lib/libcrypto/arch/i386/sha512-586.S563
-rw-r--r--lib/libcrypto/arch/i386/x86.S2114
34 files changed, 19137 insertions, 8589 deletions
diff --git a/lib/libcrypto/arch/i386/Makefile b/lib/libcrypto/arch/i386/Makefile
new file mode 100644
index 00000000000..f0944406975
--- /dev/null
+++ b/lib/libcrypto/arch/i386/Makefile
@@ -0,0 +1,13 @@
+# $NetBSD: Makefile,v 1.1 2008/05/10 21:14:29 christos Exp $
+
+.include "bsd.own.mk"
+
+CRYPTODIST=${NETBSDSRCDIR}/crypto/dist
+.include "${NETBSDSRCDIR}/crypto/Makefile.openssl"
+
+regen:
+ for i in $$(find ${OPENSSLSRC} -name \*86.pl); do \
+ perl -I${OPENSSLSRC}/crypto/perlasm \
+ -I${OPENSSLSRC}/crypto/bn/asm $$i elf -fPIC \
+ > $$(basename $$i .pl).S; \
+ done
diff --git a/lib/libcrypto/arch/i386/aes-586.S b/lib/libcrypto/arch/i386/aes-586.S
new file mode 100644
index 00000000000..56881122d73
--- /dev/null
+++ b/lib/libcrypto/arch/i386/aes-586.S
@@ -0,0 +1,3238 @@
+.file "aes-586.s"
+.text
+.type _x86_AES_encrypt_compact,@function
+.align 16
+_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 16
+.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
+.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact
+.type _sse_AES_encrypt_compact,@function
+.align 16
+_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 16
+.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 16
+.L002out:
+ pxor (%edi),%mm0
+ pxor 8(%edi),%mm4
+ ret
+.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact
+.type _x86_AES_encrypt,@function
+.align 16
+_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 16
+.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 64
+.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
+.size _x86_AES_encrypt,.-_x86_AES_encrypt
+.globl AES_encrypt
+.type AES_encrypt,@function
+.align 16
+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
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L004pic_point](%ebp),%eax
+ movl OPENSSL_ia32cap_P@GOT(%eax),%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 16
+.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
+.size AES_encrypt,.-.L_AES_encrypt_begin
+.type _x86_AES_decrypt_compact,@function
+.align 16
+_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 16
+.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
+.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact
+.type _sse_AES_decrypt_compact,@function
+.align 16
+_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 16
+.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 16
+.L008out:
+ pxor (%edi),%mm0
+ pxor 8(%edi),%mm4
+ ret
+.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact
+.type _x86_AES_decrypt,@function
+.align 16
+_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 16
+.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 64
+.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
+.size _x86_AES_decrypt,.-_x86_AES_decrypt
+.globl AES_decrypt
+.type AES_decrypt,@function
+.align 16
+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
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L010pic_point](%ebp),%eax
+ movl OPENSSL_ia32cap_P@GOT(%eax),%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 16
+.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
+.size AES_decrypt,.-.L_AES_decrypt_begin
+.globl AES_cbc_encrypt
+.type AES_cbc_encrypt,@function
+.align 16
+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
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L013pic_point](%ebp),%eax
+ movl OPENSSL_ia32cap_P@GOT(%eax),%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 4
+.L016tbl_break_out:
+ subl %eax,%edx
+ andl $4095,%edx
+ addl $384,%edx
+ subl %edx,%esi
+.align 4
+.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 4
+.L018do_copy:
+ movl %edi,44(%esp)
+.long 2784229001
+.L019skip_copy:
+ movl $16,%edi
+.align 4
+.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 16
+.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 4
+.long 2884892297
+.L023skip_ezero:
+ movl 28(%esp),%esp
+ popfl
+.L012drop_out:
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+ pushfl
+.align 16
+.L021fast_decrypt:
+ cmpl 36(%esp),%esi
+ je .L024fast_dec_in_place
+ movl %edi,52(%esp)
+.align 4
+.align 16
+.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 16
+.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 4
+.L026fast_dec_out:
+ cmpl $0,316(%esp)
+ movl 44(%esp),%edi
+ je .L028skip_dzero
+ movl $60,%ecx
+ xorl %eax,%eax
+.align 4
+.long 2884892297
+.L028skip_dzero:
+ movl 28(%esp),%esp
+ popfl
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+ pushfl
+.align 16
+.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
+ jb .L030slow_enc_tail
+ btl $25,52(%esp)
+ jnc .L031slow_enc_x86
+ movq (%edi),%mm0
+ movq 8(%edi),%mm4
+.align 16
+.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 16
+.L031slow_enc_x86:
+ movl (%edi),%eax
+ movl 4(%edi),%ebx
+.align 4
+.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 16
+.L030slow_enc_tail:
+ emms
+ movl %edx,%edi
+ movl $16,%ebx
+ subl %ecx,%ebx
+ cmpl %esi,%edi
+ je .L034enc_in_place
+.align 4
+.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 4
+.long 2868115081
+ leal -16(%edx),%edi
+ movl %edx,%esi
+ movl (%edi),%eax
+ movl 4(%edi),%ebx
+ movl $16,40(%esp)
+ jmp .L033slow_enc_loop_x86
+.align 16
+.L029slow_decrypt:
+ btl $25,52(%esp)
+ jnc .L036slow_dec_loop_x86
+.align 4
+.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 16
+.L038slow_dec_partial_sse:
+ movq %mm0,(%eax)
+ movq %mm4,8(%eax)
+ emms
+ addl $16,%ecx
+ movl %ebx,%edi
+ movl %eax,%esi
+.align 4
+.long 2767451785
+ movl 28(%esp),%esp
+ popfl
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+ pushfl
+.align 16
+.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 16
+.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 4
+.long 2767451785
+ movl 28(%esp),%esp
+ popfl
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin
+.type _x86_AES_set_encrypt_key,@function
+.align 16
+_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 4
+.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 4
+.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 4
+.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
+.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
+.globl AES_set_encrypt_key
+.type AES_set_encrypt_key,@function
+.align 16
+AES_set_encrypt_key:
+.L_AES_set_encrypt_key_begin:
+ call _x86_AES_set_encrypt_key
+ ret
+.size AES_set_encrypt_key,.-.L_AES_set_encrypt_key_begin
+.globl AES_set_decrypt_key
+.type AES_set_decrypt_key,@function
+.align 16
+AES_set_decrypt_key:
+.L_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 4
+.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 4
+.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
+.size AES_set_decrypt_key,.-.L_AES_set_decrypt_key_begin
+.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
+.comm OPENSSL_ia32cap_P,4,4
diff --git a/lib/libcrypto/arch/i386/aes.inc b/lib/libcrypto/arch/i386/aes.inc
new file mode 100644
index 00000000000..645d5248299
--- /dev/null
+++ b/lib/libcrypto/arch/i386/aes.inc
@@ -0,0 +1,3 @@
+.PATH.S: ${.PARSEDIR}
+AES_SRCS = aes-586.S
+.include "../../aes.inc"
diff --git a/lib/libcrypto/arch/i386/bf-586.S b/lib/libcrypto/arch/i386/bf-586.S
new file mode 100644
index 00000000000..aa718d40cd5
--- /dev/null
+++ b/lib/libcrypto/arch/i386/bf-586.S
@@ -0,0 +1,896 @@
+.file "bf-586.s"
+.text
+.globl BF_encrypt
+.type BF_encrypt,@function
+.align 16
+BF_encrypt:
+.L_BF_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ movl 12(%esp),%ebx
+ movl 16(%esp),%ebp
+ pushl %esi
+ pushl %edi
+
+ movl (%ebx),%edi
+ movl 4(%ebx),%esi
+ xorl %eax,%eax
+ movl (%ebp),%ebx
+ xorl %ecx,%ecx
+ xorl %ebx,%edi
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+ 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
+.size BF_encrypt,.-.L_BF_encrypt_begin
+.globl BF_decrypt
+.type BF_decrypt,@function
+.align 16
+BF_decrypt:
+.L_BF_decrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ movl 12(%esp),%ebx
+ movl 16(%esp),%ebp
+ pushl %esi
+ pushl %edi
+
+ movl (%ebx),%edi
+ movl 4(%ebx),%esi
+ xorl %eax,%eax
+ movl 68(%ebp),%ebx
+ xorl %ecx,%ecx
+ xorl %ebx,%edi
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+ 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
+.size BF_decrypt,.-.L_BF_decrypt_begin
+.globl BF_cbc_encrypt
+.type BF_cbc_encrypt,@function
+.align 16
+BF_cbc_encrypt:
+.L_BF_cbc_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 28(%esp),%ebp
+
+ 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
+
+ movl 56(%esp),%ecx
+
+ 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 64
+.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 64
+.size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
diff --git a/lib/libcrypto/arch/i386/bf-686.S b/lib/libcrypto/arch/i386/bf-686.S
new file mode 100644
index 00000000000..69b0ce681b1
--- /dev/null
+++ b/lib/libcrypto/arch/i386/bf-686.S
@@ -0,0 +1,864 @@
+.file "bf-686.s"
+.text
+.globl BF_encrypt
+.type BF_encrypt,@function
+.align 16
+BF_encrypt:
+.L_BF_encrypt_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+
+
+ movl 20(%esp),%eax
+ movl (%eax),%ecx
+ movl 4(%eax),%edx
+
+
+ movl 24(%esp),%edi
+ xorl %eax,%eax
+ xorl %ebx,%ebx
+ xorl (%edi),%ecx
+
+
+ rorl $16,%ecx
+ movl 4(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 8(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 12(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 16(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 20(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 24(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 28(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 32(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 36(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 40(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 44(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 48(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 52(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 56(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 60(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 64(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+ xorl 68(%edi),%edx
+ movl 20(%esp),%eax
+ movl %edx,(%eax)
+ movl %ecx,4(%eax)
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size BF_encrypt,.-.L_BF_encrypt_begin
+.globl BF_decrypt
+.type BF_decrypt,@function
+.align 16
+BF_decrypt:
+.L_BF_decrypt_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+
+
+ movl 20(%esp),%eax
+ movl (%eax),%ecx
+ movl 4(%eax),%edx
+
+
+ movl 24(%esp),%edi
+ xorl %eax,%eax
+ xorl %ebx,%ebx
+ xorl 68(%edi),%ecx
+
+
+ rorl $16,%ecx
+ movl 64(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 60(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 56(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 52(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 48(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 44(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 40(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 36(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 32(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 28(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 24(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 20(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 16(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 12(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+
+
+ rorl $16,%ecx
+ movl 8(%edi),%esi
+ movb %ch,%al
+ movb %cl,%bl
+ rorl $16,%ecx
+ xorl %esi,%edx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %ch,%al
+ movb %cl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%edx
+
+
+ rorl $16,%edx
+ movl 4(%edi),%esi
+ movb %dh,%al
+ movb %dl,%bl
+ rorl $16,%edx
+ xorl %esi,%ecx
+ movl 72(%edi,%eax,4),%esi
+ movl 1096(%edi,%ebx,4),%ebp
+ movb %dh,%al
+ movb %dl,%bl
+ addl %ebp,%esi
+ movl 2120(%edi,%eax,4),%eax
+ xorl %eax,%esi
+ movl 3144(%edi,%ebx,4),%ebp
+ addl %ebp,%esi
+ xorl %eax,%eax
+ xorl %esi,%ecx
+ xorl (%edi),%edx
+ movl 20(%esp),%eax
+ movl %edx,(%eax)
+ movl %ecx,4(%eax)
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size BF_decrypt,.-.L_BF_decrypt_begin
+.globl BF_cbc_encrypt
+.type BF_cbc_encrypt,@function
+.align 16
+BF_cbc_encrypt:
+.L_BF_cbc_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 28(%esp),%ebp
+
+ 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
+
+ movl 56(%esp),%ecx
+
+ 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 64
+.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 64
+.size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
diff --git a/lib/libcrypto/arch/i386/bf.inc b/lib/libcrypto/arch/i386/bf.inc
deleted file mode 100644
index 1f2fc1b7353..00000000000
--- a/lib/libcrypto/arch/i386/bf.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-# $NetBSD: bf.inc,v 1.2 2001/09/10 02:56:58 thorpej Exp $
-#
-# @(#) Copyright (c) 1995 Simon J. Gerraty
-#
-# SRCS extracted from /home/current/src/lib/libcrypto/../../crypto/dist/openssl/crypto/bf/Makefile.ssl
-#
-
-CPPFLAGS+= -DBF_PTR2
-
-.PATH: ${OPENSSLSRC}/crypto/bf
-.PATH: ${.CURDIR}/arch/i386
-
-CPPFLAGS+= -I${OPENSSLSRC}/crypto/bf
-CPPFLAGS+= -I${.CURDIR}/arch/i386
-
-SRCS+=bf_skey.c bf_ecb.c bf_enc_x86.S bf_cbc.c bf_cfb64.c bf_ofb64.c
diff --git a/lib/libcrypto/arch/i386/bf_enc_586.S b/lib/libcrypto/arch/i386/bf_enc_586.S
deleted file mode 100644
index 26fb131bc0a..00000000000
--- a/lib/libcrypto/arch/i386/bf_enc_586.S
+++ /dev/null
@@ -1,759 +0,0 @@
-/* $NetBSD: bf_enc_586.S,v 1.1 2000/07/31 18:39:05 thorpej Exp $ */
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-/*
- * Modified from the output of `perl bf-586.pl elf' by
- * Jason R. Thorpe <thorpej@zembu.com>.
- */
-
-#include <machine/asm.h>
-
-ENTRY(BF_encrypt)
- 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
-
-ENTRY(BF_decrypt)
- 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
-
-/*
- * BF_cbc_encrypt() not included -- needs to be made PIC.
- */
diff --git a/lib/libcrypto/arch/i386/bf_enc_686.S b/lib/libcrypto/arch/i386/bf_enc_686.S
deleted file mode 100644
index 8263a184018..00000000000
--- a/lib/libcrypto/arch/i386/bf_enc_686.S
+++ /dev/null
@@ -1,731 +0,0 @@
-/* $NetBSD: bf_enc_686.S,v 1.1 2000/07/31 18:39:05 thorpej Exp $ */
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-/*
- * Modified from the output of `perl bf-686.pl elf' by
- * Jason R. Thorpe <thorpej@zembu.com>.
- */
-
-#include <machine/asm.h>
-
-ENTRY(BF_encrypt)
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
-
-
- /* Load the 2 words */
- movl 20(%esp), %eax
- movl (%eax), %ecx
- movl 4(%eax), %edx
-
- /* P pointer, s and enc flag */
- movl 24(%esp), %edi
- xorl %eax, %eax
- xorl %ebx, %ebx
- xorl (%edi), %ecx
-
- /* Round 0 */
- rorl $16, %ecx
- movl 4(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 1 */
- rorl $16, %edx
- movl 8(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 2 */
- rorl $16, %ecx
- movl 12(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 3 */
- rorl $16, %edx
- movl 16(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 4 */
- rorl $16, %ecx
- movl 20(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 5 */
- rorl $16, %edx
- movl 24(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 6 */
- rorl $16, %ecx
- movl 28(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 7 */
- rorl $16, %edx
- movl 32(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 8 */
- rorl $16, %ecx
- movl 36(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 9 */
- rorl $16, %edx
- movl 40(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 10 */
- rorl $16, %ecx
- movl 44(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 11 */
- rorl $16, %edx
- movl 48(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 12 */
- rorl $16, %ecx
- movl 52(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 13 */
- rorl $16, %edx
- movl 56(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 14 */
- rorl $16, %ecx
- movl 60(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 15 */
- rorl $16, %edx
- movl 64(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
- xorl 68(%edi), %edx
- movl 20(%esp), %eax
- movl %edx, (%eax)
- movl %ecx, 4(%eax)
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret
-
-ENTRY(BF_decrypt)
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
-
-
- /* Load the 2 words */
- movl 20(%esp), %eax
- movl (%eax), %ecx
- movl 4(%eax), %edx
-
- /* P pointer, s and enc flag */
- movl 24(%esp), %edi
- xorl %eax, %eax
- xorl %ebx, %ebx
- xorl 68(%edi), %ecx
-
- /* Round 16 */
- rorl $16, %ecx
- movl 64(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 15 */
- rorl $16, %edx
- movl 60(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 14 */
- rorl $16, %ecx
- movl 56(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 13 */
- rorl $16, %edx
- movl 52(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 12 */
- rorl $16, %ecx
- movl 48(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 11 */
- rorl $16, %edx
- movl 44(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 10 */
- rorl $16, %ecx
- movl 40(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 9 */
- rorl $16, %edx
- movl 36(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 8 */
- rorl $16, %ecx
- movl 32(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 7 */
- rorl $16, %edx
- movl 28(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 6 */
- rorl $16, %ecx
- movl 24(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 5 */
- rorl $16, %edx
- movl 20(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 4 */
- rorl $16, %ecx
- movl 16(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 3 */
- rorl $16, %edx
- movl 12(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
-
- /* Round 2 */
- rorl $16, %ecx
- movl 8(%edi), %esi
- movb %ch, %al
- movb %cl, %bl
- rorl $16, %ecx
- xorl %esi, %edx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %ch, %al
- movb %cl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %edx
-
- /* Round 1 */
- rorl $16, %edx
- movl 4(%edi), %esi
- movb %dh, %al
- movb %dl, %bl
- rorl $16, %edx
- xorl %esi, %ecx
- movl 72(%edi,%eax,4),%esi
- movl 1096(%edi,%ebx,4),%ebp
- movb %dh, %al
- movb %dl, %bl
- addl %ebp, %esi
- movl 2120(%edi,%eax,4),%eax
- xorl %eax, %esi
- movl 3144(%edi,%ebx,4),%ebp
- addl %ebp, %esi
- xorl %eax, %eax
- xorl %esi, %ecx
- xorl (%edi), %edx
- movl 20(%esp), %eax
- movl %edx, (%eax)
- movl %ecx, 4(%eax)
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret
-
-/*
- * BF_cbc_encrypt() not included -- needs to be made PIC.
- */
diff --git a/lib/libcrypto/arch/i386/bf_enc_x86.S b/lib/libcrypto/arch/i386/bf_enc_x86.S
deleted file mode 100644
index 16feefc29a6..00000000000
--- a/lib/libcrypto/arch/i386/bf_enc_x86.S
+++ /dev/null
@@ -1,13 +0,0 @@
-/* $NetBSD: bf_enc_x86.S,v 1.2 2002/06/16 18:35:02 thorpej Exp $ */
-
-/*
- * Written by Jason R. Thorpe <thorpej@zembu.com>
- * Public domain.
- */
-
-#if defined(__pentiumpro__) || defined(__tune_pentiumpro__) || \
- defined(__tune_i686__)
-#include "bf_enc_686.S"
-#else
-#include "bf_enc_586.S"
-#endif
diff --git a/lib/libcrypto/arch/i386/bn-586.S b/lib/libcrypto/arch/i386/bn-586.S
new file mode 100644
index 00000000000..66ab04bddc6
--- /dev/null
+++ b/lib/libcrypto/arch/i386/bn-586.S
@@ -0,0 +1,1384 @@
+.file "/net/shiny/src-6/NetBSD/cvsroot/src/crypto/dist/openssl/crypto/bn/asm/bn-586.s"
+.text
+.globl bn_mul_add_words
+.type bn_mul_add_words,@function
+.align 16
+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 16
+.L001maw_loop:
+
+ movl (%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ adcl $0,%edx
+ addl (%edi),%eax
+ adcl $0,%edx
+ movl %eax,(%edi)
+ movl %edx,%esi
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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:
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size bn_mul_add_words,.-.L_bn_mul_add_words_begin
+.globl bn_mul_words
+.type bn_mul_words,@function
+.align 16
+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:
+
+ movl (%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,(%edi)
+ movl %edx,%esi
+
+ movl 4(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,4(%edi)
+ movl %edx,%esi
+
+ movl 8(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,8(%edi)
+ movl %edx,%esi
+
+ movl 12(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,12(%edi)
+ movl %edx,%esi
+
+ movl 16(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,16(%edi)
+ movl %edx,%esi
+
+ movl 20(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,20(%edi)
+ movl %edx,%esi
+
+ movl 24(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,24(%edi)
+ movl %edx,%esi
+
+ 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:
+
+ movl (%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 4(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,4(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 8(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,8(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 12(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,12(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 16(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,16(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 20(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,20(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ 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
+.size bn_mul_words,.-.L_bn_mul_words_begin
+.globl bn_sqr_words
+.type bn_sqr_words,@function
+.align 16
+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:
+
+ movl (%edi),%eax
+ mull %eax
+ movl %eax,(%esi)
+ movl %edx,4(%esi)
+
+ movl 4(%edi),%eax
+ mull %eax
+ movl %eax,8(%esi)
+ movl %edx,12(%esi)
+
+ movl 8(%edi),%eax
+ mull %eax
+ movl %eax,16(%esi)
+ movl %edx,20(%esi)
+
+ movl 12(%edi),%eax
+ mull %eax
+ movl %eax,24(%esi)
+ movl %edx,28(%esi)
+
+ movl 16(%edi),%eax
+ mull %eax
+ movl %eax,32(%esi)
+ movl %edx,36(%esi)
+
+ movl 20(%edi),%eax
+ mull %eax
+ movl %eax,40(%esi)
+ movl %edx,44(%esi)
+
+ movl 24(%edi),%eax
+ mull %eax
+ movl %eax,48(%esi)
+ movl %edx,52(%esi)
+
+ 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
+
+ movl (%edi),%eax
+ mull %eax
+ movl %eax,(%esi)
+ decl %ebx
+ movl %edx,4(%esi)
+ jz .L010sw_end
+
+ movl 4(%edi),%eax
+ mull %eax
+ movl %eax,8(%esi)
+ decl %ebx
+ movl %edx,12(%esi)
+ jz .L010sw_end
+
+ movl 8(%edi),%eax
+ mull %eax
+ movl %eax,16(%esi)
+ decl %ebx
+ movl %edx,20(%esi)
+ jz .L010sw_end
+
+ movl 12(%edi),%eax
+ mull %eax
+ movl %eax,24(%esi)
+ decl %ebx
+ movl %edx,28(%esi)
+ jz .L010sw_end
+
+ movl 16(%edi),%eax
+ mull %eax
+ movl %eax,32(%esi)
+ decl %ebx
+ movl %edx,36(%esi)
+ jz .L010sw_end
+
+ movl 20(%edi),%eax
+ mull %eax
+ movl %eax,40(%esi)
+ decl %ebx
+ movl %edx,44(%esi)
+ jz .L010sw_end
+
+ 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
+.size bn_sqr_words,.-.L_bn_sqr_words_begin
+.globl bn_div_words
+.type bn_div_words,@function
+.align 16
+bn_div_words:
+.L_bn_div_words_begin:
+ movl 4(%esp),%edx
+ movl 8(%esp),%eax
+ movl 12(%esp),%ecx
+ divl %ecx
+ ret
+.size bn_div_words,.-.L_bn_div_words_begin
+.globl bn_add_words
+.type bn_add_words,@function
+.align 16
+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:
+
+ movl (%esi),%ecx
+ movl (%edi),%edx
+ addl %eax,%ecx
+ movl $0,%eax
+ adcl %eax,%eax
+ addl %edx,%ecx
+ adcl $0,%eax
+ movl %ecx,(%ebx)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size bn_add_words,.-.L_bn_add_words_begin
+.globl bn_sub_words
+.type bn_sub_words,@function
+.align 16
+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:
+
+ movl (%esi),%ecx
+ movl (%edi),%edx
+ subl %eax,%ecx
+ movl $0,%eax
+ adcl %eax,%eax
+ subl %edx,%ecx
+ adcl $0,%eax
+ movl %ecx,(%ebx)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size bn_sub_words,.-.L_bn_sub_words_begin
+.globl bn_sub_part_words
+.type bn_sub_part_words,@function
+.align 16
+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:
+
+ movl (%esi),%ecx
+ movl (%edi),%edx
+ subl %eax,%ecx
+ movl $0,%eax
+ adcl %eax,%eax
+ subl %edx,%ecx
+ adcl $0,%eax
+ movl %ecx,(%ebx)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ movl $0,%edx
+ subl %ebp,%edx
+ movl %edx,%ebp
+ andl $4294967288,%ebp
+ jz .L022pw_neg_finish
+.L023pw_neg_loop:
+
+ movl $0,%ecx
+ movl (%edi),%edx
+ subl %eax,%ecx
+ movl $0,%eax
+ adcl %eax,%eax
+ subl %edx,%ecx
+ adcl $0,%eax
+ movl %ecx,(%ebx)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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:
+
+ movl (%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,(%ebx)
+ jnc .L026pw_nc0
+
+ movl 4(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,4(%ebx)
+ jnc .L027pw_nc1
+
+ movl 8(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,8(%ebx)
+ jnc .L028pw_nc2
+
+ movl 12(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,12(%ebx)
+ jnc .L029pw_nc3
+
+ movl 16(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,16(%ebx)
+ jnc .L030pw_nc4
+
+ movl 20(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,20(%ebx)
+ jnc .L031pw_nc5
+
+ movl 24(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,24(%ebx)
+ jnc .L032pw_nc6
+
+ 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
+
+ movl (%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,(%ebx)
+ jnc .L034pw_tail_nc0
+ decl %ebp
+ jz .L020pw_end
+
+ movl 4(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,4(%ebx)
+ jnc .L035pw_tail_nc1
+ decl %ebp
+ jz .L020pw_end
+
+ movl 8(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,8(%ebx)
+ jnc .L036pw_tail_nc2
+ decl %ebp
+ jz .L020pw_end
+
+ movl 12(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,12(%ebx)
+ jnc .L037pw_tail_nc3
+ decl %ebp
+ jz .L020pw_end
+
+ movl 16(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,16(%ebx)
+ jnc .L038pw_tail_nc4
+ decl %ebp
+ jz .L020pw_end
+
+ movl 20(%esi),%ecx
+ subl %eax,%ecx
+ movl %ecx,20(%ebx)
+ jnc .L039pw_tail_nc5
+ decl %ebp
+ jz .L020pw_end
+
+ 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
+.size bn_sub_part_words,.-.L_bn_sub_part_words_begin
diff --git a/lib/libcrypto/arch/i386/bn.inc b/lib/libcrypto/arch/i386/bn.inc
deleted file mode 100644
index 48832cdf4a9..00000000000
--- a/lib/libcrypto/arch/i386/bn.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-# $NetBSD: bn.inc,v 1.5 2005/11/25 20:34:58 christos Exp $
-#
-# @(#) Copyright (c) 1995 Simon J. Gerraty
-#
-# SRCS extracted from /home/current/src/lib/libcrypto/../../crypto/dist/openssl/crypto/bn/Makefile.ssl
-#
-
-.PATH: ${OPENSSLSRC}/crypto/bn
-.PATH: ${.CURDIR}/arch/i386
-
-CPPFLAGS+= -I${OPENSSLSRC}/crypto/bn
-
-SRCS+= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \
- bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \
- bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm_586.S bn_comba_586.S \
- bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_nist.c bn_gf2m.c bn_depr.c
diff --git a/lib/libcrypto/arch/i386/bn_asm_586.S b/lib/libcrypto/arch/i386/bn_asm_586.S
deleted file mode 100644
index 587044b5373..00000000000
--- a/lib/libcrypto/arch/i386/bn_asm_586.S
+++ /dev/null
@@ -1,909 +0,0 @@
-/* $NetBSD: bn_asm_586.S,v 1.3 2003/11/04 21:06:32 itojun Exp $ */
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-/*
- * Modified from the output of `perl bn-586.pl elf' by
- * Jason R. Thorpe <thorpej@zembu.com>.
- */
-
-#include <machine/asm.h>
-
-ENTRY(bn_mul_add_words)
- 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
-L001maw_loop:
- movl %ecx, (%esp)
- /* Round 0 */
- movl (%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl (%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, (%edi)
- movl %edx, %esi
- /* Round 4 */
- movl 4(%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl 4(%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, 4(%edi)
- movl %edx, %esi
- /* Round 8 */
- movl 8(%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl 8(%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, 8(%edi)
- movl %edx, %esi
- /* Round 12 */
- movl 12(%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl 12(%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, 12(%edi)
- movl %edx, %esi
- /* Round 16 */
- movl 16(%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl 16(%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, 16(%edi)
- movl %edx, %esi
- /* Round 20 */
- movl 20(%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl 20(%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, 20(%edi)
- movl %edx, %esi
- /* Round 24 */
- movl 24(%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl 24(%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, 24(%edi)
- movl %edx, %esi
- /* Round 28 */
- movl 28(%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl 28(%edi), %esi
- adcl $0, %edx
- addl %esi, %eax
- adcl $0, %edx
- movl %eax, 28(%edi)
- movl %edx, %esi
-
- movl (%esp), %ecx
- addl $32, %ebx
- addl $32, %edi
- subl $8, %ecx
- jnz L001maw_loop
-L000maw_finish:
- movl 32(%esp), %ecx
- andl $7, %ecx
- jnz L002maw_finish2
- jmp L003maw_end
-_ALIGN_TEXT
-L002maw_finish2:
- /* Tail Round 0 */
- movl (%ebx), %eax
- mull %ebp
- addl %esi, %eax
- movl (%edi), %esi
- adcl $0, %edx
- addl %esi, %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
- movl 4(%edi), %esi
- adcl $0, %edx
- addl %esi, %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
- movl 8(%edi), %esi
- adcl $0, %edx
- addl %esi, %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
- movl 12(%edi), %esi
- adcl $0, %edx
- addl %esi, %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
- movl 16(%edi), %esi
- adcl $0, %edx
- addl %esi, %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
- movl 20(%edi), %esi
- adcl $0, %edx
- addl %esi, %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
- movl 24(%edi), %esi
- adcl $0, %edx
- addl %esi, %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
-
-ENTRY(bn_mul_words)
- 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
-_ALIGN_TEXT
-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
-
-ENTRY(bn_sqr_words)
- 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
-
-ENTRY(bn_div_words)
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
-
- movl 20(%esp), %edx
- movl 24(%esp), %eax
- movl 28(%esp), %ebx
- divl %ebx
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret
-
-ENTRY(bn_add_words)
- 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
-
-ENTRY(bn_sub_words)
- 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
diff --git a/lib/libcrypto/arch/i386/bn_comba_586.S b/lib/libcrypto/arch/i386/bn_comba_586.S
deleted file mode 100644
index 6ac7b30e840..00000000000
--- a/lib/libcrypto/arch/i386/bn_comba_586.S
+++ /dev/null
@@ -1,1301 +0,0 @@
-/* $NetBSD: bn_comba_586.S,v 1.3 2003/11/04 21:06:32 itojun Exp $ */
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-/*
- * Modified from the output of `perl co-586.pl elf' by
- * Jason R. Thorpe <thorpej@zembu.com>.
- */
-
-#include <machine/asm.h>
-
-ENTRY(bn_mul_comba8)
- 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
-
-ENTRY(bn_mul_comba4)
- 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
-
-ENTRY(bn_sqr_comba8)
- 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
-
-ENTRY(bn_sqr_comba4)
- 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/lib/libcrypto/arch/i386/cast-586.S b/lib/libcrypto/arch/i386/cast-586.S
new file mode 100644
index 00000000000..4d20ff4d615
--- /dev/null
+++ b/lib/libcrypto/arch/i386/cast-586.S
@@ -0,0 +1,935 @@
+.file "cast-586.s"
+.text
+.globl CAST_encrypt
+.type CAST_encrypt,@function
+.align 16
+CAST_encrypt:
+.L_CAST_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ movl 12(%esp),%ebx
+ movl 16(%esp),%ebp
+ pushl %esi
+ pushl %edi
+
+ movl (%ebx),%edi
+ movl 4(%ebx),%esi
+
+ movl 128(%ebp),%eax
+ pushl %eax
+ xorl %eax,%eax
+
+ movl (%ebp),%edx
+ movl 4(%ebp),%ecx
+ addl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 8(%ebp),%edx
+ movl 12(%ebp),%ecx
+ xorl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 16(%ebp),%edx
+ movl 20(%ebp),%ecx
+ subl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 24(%ebp),%edx
+ movl 28(%ebp),%ecx
+ addl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 32(%ebp),%edx
+ movl 36(%ebp),%ecx
+ xorl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 40(%ebp),%edx
+ movl 44(%ebp),%ecx
+ subl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 48(%ebp),%edx
+ movl 52(%ebp),%ecx
+ addl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 56(%ebp),%edx
+ movl 60(%ebp),%ecx
+ xorl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 64(%ebp),%edx
+ movl 68(%ebp),%ecx
+ subl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 72(%ebp),%edx
+ movl 76(%ebp),%ecx
+ addl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 80(%ebp),%edx
+ movl 84(%ebp),%ecx
+ xorl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 88(%ebp),%edx
+ movl 92(%ebp),%ecx
+ subl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%esi
+
+ popl %edx
+ orl %edx,%edx
+ jnz .L000cast_enc_done
+
+ movl 96(%ebp),%edx
+ movl 100(%ebp),%ecx
+ addl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 104(%ebp),%edx
+ movl 108(%ebp),%ecx
+ xorl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 112(%ebp),%edx
+ movl 116(%ebp),%ecx
+ subl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 120(%ebp),%edx
+ movl 124(%ebp),%ecx
+ addl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%esi
+.L000cast_enc_done:
+ nop
+ movl 20(%esp),%eax
+ movl %edi,4(%eax)
+ movl %esi,(%eax)
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size CAST_encrypt,.-.L_CAST_encrypt_begin
+.globl CAST_decrypt
+.type CAST_decrypt,@function
+.align 16
+CAST_decrypt:
+.L_CAST_decrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ movl 12(%esp),%ebx
+ movl 16(%esp),%ebp
+ pushl %esi
+ pushl %edi
+
+ movl (%ebx),%edi
+ movl 4(%ebx),%esi
+
+ movl 128(%ebp),%eax
+ orl %eax,%eax
+ jnz .L001cast_dec_skip
+ xorl %eax,%eax
+
+ movl 120(%ebp),%edx
+ movl 124(%ebp),%ecx
+ addl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 112(%ebp),%edx
+ movl 116(%ebp),%ecx
+ subl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 104(%ebp),%edx
+ movl 108(%ebp),%ecx
+ xorl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 96(%ebp),%edx
+ movl 100(%ebp),%ecx
+ addl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%esi
+.L001cast_dec_skip:
+
+ movl 88(%ebp),%edx
+ movl 92(%ebp),%ecx
+ subl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 80(%ebp),%edx
+ movl 84(%ebp),%ecx
+ xorl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 72(%ebp),%edx
+ movl 76(%ebp),%ecx
+ addl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 64(%ebp),%edx
+ movl 68(%ebp),%ecx
+ subl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 56(%ebp),%edx
+ movl 60(%ebp),%ecx
+ xorl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 48(%ebp),%edx
+ movl 52(%ebp),%ecx
+ addl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 40(%ebp),%edx
+ movl 44(%ebp),%ecx
+ subl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 32(%ebp),%edx
+ movl 36(%ebp),%ecx
+ xorl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 24(%ebp),%edx
+ movl 28(%ebp),%ecx
+ addl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl 16(%ebp),%edx
+ movl 20(%ebp),%ecx
+ subl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ subl %ebx,%ecx
+ xorl %ecx,%esi
+
+ movl 8(%ebp),%edx
+ movl 12(%ebp),%ecx
+ xorl %esi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ addl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ xorl %ebx,%ecx
+ xorl %ecx,%edi
+
+ movl (%ebp),%edx
+ movl 4(%ebp),%ecx
+ addl %edi,%edx
+ roll %cl,%edx
+ movl %edx,%ebx
+ xorl %ecx,%ecx
+ movb %dh,%cl
+ andl $255,%ebx
+ shrl $16,%edx
+ xorl %eax,%eax
+ movb %dh,%al
+ andl $255,%edx
+ movl CAST_S_table0(,%ecx,4),%ecx
+ movl CAST_S_table1(,%ebx,4),%ebx
+ xorl %ebx,%ecx
+ movl CAST_S_table2(,%eax,4),%ebx
+ subl %ebx,%ecx
+ movl CAST_S_table3(,%edx,4),%ebx
+ addl %ebx,%ecx
+ xorl %ecx,%esi
+ nop
+ movl 20(%esp),%eax
+ movl %edi,4(%eax)
+ movl %esi,(%eax)
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size CAST_decrypt,.-.L_CAST_decrypt_begin
+.globl CAST_cbc_encrypt
+.type CAST_cbc_encrypt,@function
+.align 16
+CAST_cbc_encrypt:
+.L_CAST_cbc_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 28(%esp),%ebp
+
+ 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
+
+ movl 56(%esp),%ecx
+
+ movl 48(%esp),%eax
+ pushl %eax
+ pushl %ebx
+ cmpl $0,%ecx
+ jz .L002decrypt
+ andl $4294967288,%ebp
+ movl 8(%esp),%eax
+ movl 12(%esp),%ebx
+ jz .L003encrypt_finish
+.L004encrypt_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_CAST_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 .L004encrypt_loop
+.L003encrypt_finish:
+ movl 52(%esp),%ebp
+ andl $7,%ebp
+ jz .L005finish
+ call .L006PIC_point
+.L006PIC_point:
+ popl %edx
+ leal .L007cbc_enc_jmp_table-.L006PIC_point(%edx),%ecx
+ movl (%ecx,%ebp,4),%ebp
+ addl %edx,%ebp
+ xorl %ecx,%ecx
+ xorl %edx,%edx
+ jmp *%ebp
+.L008ej7:
+ xorl %edx,%edx
+ movb 6(%esi),%dh
+ shll $8,%edx
+.L009ej6:
+ movb 5(%esi),%dh
+.L010ej5:
+ movb 4(%esi),%dl
+.L011ej4:
+ movl (%esi),%ecx
+ jmp .L012ejend
+.L013ej3:
+ movb 2(%esi),%ch
+ xorl %ecx,%ecx
+ shll $8,%ecx
+.L014ej2:
+ movb 1(%esi),%ch
+.L015ej1:
+ movb (%esi),%cl
+.L012ejend:
+ xorl %ecx,%eax
+ xorl %edx,%ebx
+ bswap %eax
+ bswap %ebx
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+ call .L_CAST_encrypt_begin
+ movl 8(%esp),%eax
+ movl 12(%esp),%ebx
+ bswap %eax
+ bswap %ebx
+ movl %eax,(%edi)
+ movl %ebx,4(%edi)
+ jmp .L005finish
+.L002decrypt:
+ andl $4294967288,%ebp
+ movl 16(%esp),%eax
+ movl 20(%esp),%ebx
+ jz .L016decrypt_finish
+.L017decrypt_loop:
+ movl (%esi),%eax
+ movl 4(%esi),%ebx
+ bswap %eax
+ bswap %ebx
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+ call .L_CAST_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 .L017decrypt_loop
+.L016decrypt_finish:
+ movl 52(%esp),%ebp
+ andl $7,%ebp
+ jz .L005finish
+ movl (%esi),%eax
+ movl 4(%esi),%ebx
+ bswap %eax
+ bswap %ebx
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+ call .L_CAST_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
+.L018dj7:
+ rorl $16,%edx
+ movb %dl,6(%edi)
+ shrl $16,%edx
+.L019dj6:
+ movb %dh,5(%edi)
+.L020dj5:
+ movb %dl,4(%edi)
+.L021dj4:
+ movl %ecx,(%edi)
+ jmp .L022djend
+.L023dj3:
+ rorl $16,%ecx
+ movb %cl,2(%edi)
+ shll $16,%ecx
+.L024dj2:
+ movb %ch,1(%esi)
+.L025dj1:
+ movb %cl,(%esi)
+.L022djend:
+ jmp .L005finish
+.L005finish:
+ movl 60(%esp),%ecx
+ addl $24,%esp
+ movl %eax,(%ecx)
+ movl %ebx,4(%ecx)
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.align 64
+.L007cbc_enc_jmp_table:
+.long 0
+.long .L015ej1-.L006PIC_point
+.long .L014ej2-.L006PIC_point
+.long .L013ej3-.L006PIC_point
+.long .L011ej4-.L006PIC_point
+.long .L010ej5-.L006PIC_point
+.long .L009ej6-.L006PIC_point
+.long .L008ej7-.L006PIC_point
+.align 64
+.size CAST_cbc_encrypt,.-.L_CAST_cbc_encrypt_begin
diff --git a/lib/libcrypto/arch/i386/cast.inc b/lib/libcrypto/arch/i386/cast.inc
new file mode 100644
index 00000000000..2d8730dac3c
--- /dev/null
+++ b/lib/libcrypto/arch/i386/cast.inc
@@ -0,0 +1,3 @@
+.PATH.S: ${.PARSEDIR}
+CAST_SRCS = cast-586.S
+.include "../../cast.inc"
diff --git a/lib/libcrypto/arch/i386/co-586.S b/lib/libcrypto/arch/i386/co-586.S
new file mode 100644
index 00000000000..95797e89580
--- /dev/null
+++ b/lib/libcrypto/arch/i386/co-586.S
@@ -0,0 +1,1254 @@
+.file "/net/shiny/src-6/NetBSD/cvsroot/src/crypto/dist/openssl/crypto/bn/asm/co-586.s"
+.text
+.globl bn_mul_comba8
+.type bn_mul_comba8,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 4(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl (%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 4(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 4(%esi),%eax
+ adcl %edx,%ecx
+ movl 8(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl (%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 12(%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 8(%esi),%eax
+ adcl %edx,%ebp
+ movl 8(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 4(%esi),%eax
+ adcl %edx,%ebp
+ movl 12(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 16(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 16(%esi),%eax
+ adcl %edx,%ebx
+ movl 4(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 12(%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 8(%esi),%eax
+ adcl %edx,%ebx
+ movl 12(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 16(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl (%esi),%eax
+ adcl %edx,%ebx
+ movl 20(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esi),%eax
+ adcl %edx,%ecx
+ movl 4(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 16(%esi),%eax
+ adcl %edx,%ecx
+ movl 8(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 12(%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 16(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 4(%esi),%eax
+ adcl %edx,%ecx
+ movl 20(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl (%esi),%eax
+ adcl %edx,%ecx
+ movl 24(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 24(%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 20(%esi),%eax
+ adcl %edx,%ebp
+ movl 8(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 16(%esi),%eax
+ adcl %edx,%ebp
+ movl 12(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 12(%esi),%eax
+ adcl %edx,%ebp
+ movl 16(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 8(%esi),%eax
+ adcl %edx,%ebp
+ movl 20(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 4(%esi),%eax
+ adcl %edx,%ebp
+ movl 24(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 28(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 24(%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 20(%esi),%eax
+ adcl %edx,%ebx
+ movl 12(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 16(%esi),%eax
+ adcl %edx,%ebx
+ movl 16(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 12(%esi),%eax
+ adcl %edx,%ebx
+ movl 20(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 8(%esi),%eax
+ adcl %edx,%ebx
+ movl 24(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 28(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 24(%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esi),%eax
+ adcl %edx,%ecx
+ movl 16(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 16(%esi),%eax
+ adcl %edx,%ecx
+ movl 20(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 12(%esi),%eax
+ adcl %edx,%ecx
+ movl 24(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 28(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 24(%esi),%eax
+ adcl %edx,%ebp
+ movl 16(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 20(%esi),%eax
+ adcl %edx,%ebp
+ movl 20(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 16(%esi),%eax
+ adcl %edx,%ebp
+ movl 24(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 12(%esi),%eax
+ adcl %edx,%ebp
+ movl 28(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 24(%esi),%eax
+ adcl %edx,%ebx
+ movl 20(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 20(%esi),%eax
+ adcl %edx,%ebx
+ movl 24(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 16(%esi),%eax
+ adcl %edx,%ebx
+ movl 28(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 24(%esi),%eax
+ adcl %edx,%ecx
+ movl 24(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esi),%eax
+ adcl %edx,%ecx
+ movl 28(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 24(%esi),%eax
+ adcl %edx,%ebp
+ movl 28(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 20(%esp),%eax
+ adcl %edx,%ebx
+ adcl $0,%ecx
+ movl %ebp,56(%eax)
+
+
+ movl %ebx,60(%eax)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_mul_comba8,.-.L_bn_mul_comba8_begin
+.globl bn_mul_comba4
+.type bn_mul_comba4,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 4(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl (%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 4(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 4(%esi),%eax
+ adcl %edx,%ecx
+ movl 8(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl (%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 8(%esi),%eax
+ adcl %edx,%ebp
+ movl 8(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 4(%esi),%eax
+ adcl %edx,%ebp
+ movl 12(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 8(%esi),%eax
+ adcl %edx,%ebx
+ movl 12(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esp),%eax
+ adcl %edx,%ecx
+ adcl $0,%ebp
+ movl %ebx,24(%eax)
+
+
+ movl %ecx,28(%eax)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_mul_comba4,.-.L_bn_mul_comba4_begin
+.globl bn_sqr_comba8
+.type bn_sqr_comba8,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl (%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,(%edi)
+ movl 4(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ecx
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 4(%esi),%eax
+ adcl $0,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl (%esi),%edx
+ adcl $0,%ecx
+ movl %ebp,8(%edi)
+ movl 12(%esi),%eax
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebx
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 8(%esi),%eax
+ adcl $0,%ebx
+
+ mull %eax
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl (%esi),%edx
+ adcl $0,%ebx
+ movl %ecx,16(%edi)
+ movl 20(%esi),%eax
+
+
+ xorl %ecx,%ecx
+
+ 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
+
+ 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
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebp
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl 12(%esi),%eax
+ adcl $0,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl (%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,24(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ 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
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ecx
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 16(%esi),%eax
+ adcl $0,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 8(%esi),%edx
+ adcl $0,%ecx
+ movl %ebp,32(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebx
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 20(%esi),%eax
+ adcl $0,%ebx
+
+ mull %eax
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 16(%esi),%edx
+ adcl $0,%ebx
+ movl %ecx,40(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ecx,%ecx
+
+ 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
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebp
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl 24(%esi),%eax
+ adcl $0,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl 24(%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,48(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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)
+
+
+ xorl %ecx,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ adcl $0,%ecx
+ movl %ebp,56(%edi)
+
+ movl %ebx,60(%edi)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_sqr_comba8,.-.L_bn_sqr_comba8_begin
+.globl bn_sqr_comba4
+.type bn_sqr_comba4,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl (%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,(%edi)
+ movl 4(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ecx
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 4(%esi),%eax
+ adcl $0,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl (%esi),%edx
+ adcl $0,%ecx
+ movl %ebp,8(%edi)
+ movl 12(%esi),%eax
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebx
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 8(%esi),%eax
+ adcl $0,%ebx
+
+ mull %eax
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 8(%esi),%edx
+ adcl $0,%ebx
+ movl %ecx,16(%edi)
+ movl 12(%esi),%eax
+
+
+ xorl %ecx,%ecx
+
+ 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)
+
+
+ xorl %ebp,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ adcl $0,%ebp
+ movl %ebx,24(%edi)
+
+ movl %ecx,28(%edi)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_sqr_comba4,.-.L_bn_sqr_comba4_begin
diff --git a/lib/libcrypto/arch/i386/crypt586.S b/lib/libcrypto/arch/i386/crypt586.S
new file mode 100644
index 00000000000..fb321ba9047
--- /dev/null
+++ b/lib/libcrypto/arch/i386/crypt586.S
@@ -0,0 +1,879 @@
+.file "crypt586.s"
+.text
+.globl fcrypt_body
+.type fcrypt_body,@function
+.align 16
+fcrypt_body:
+.L_fcrypt_body_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+
+
+ xorl %edi,%edi
+ xorl %esi,%esi
+ call .L000PIC_me_up
+.L000PIC_me_up:
+ popl %edx
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L000PIC_me_up](%edx),%edx
+ movl DES_SPtrans@GOT(%edx),%edx
+ pushl %edx
+ movl 28(%esp),%ebp
+ pushl $25
+.L001start:
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+.size fcrypt_body,.-.L_fcrypt_body_begin
diff --git a/lib/libcrypto/arch/i386/des-586.S b/lib/libcrypto/arch/i386/des-586.S
new file mode 100644
index 00000000000..7fa3d2e9497
--- /dev/null
+++ b/lib/libcrypto/arch/i386/des-586.S
@@ -0,0 +1,1839 @@
+.file "des-586.s"
+.text
+.type _x86_DES_encrypt,@function
+.align 16
+_x86_DES_encrypt:
+ pushl %ecx
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size _x86_DES_encrypt,.-_x86_DES_encrypt
+.type _x86_DES_decrypt,@function
+.align 16
+_x86_DES_decrypt:
+ pushl %ecx
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size _x86_DES_decrypt,.-_x86_DES_decrypt
+.globl DES_encrypt1
+.type DES_encrypt1,@function
+.align 16
+DES_encrypt1:
+.L_DES_encrypt1_begin:
+ pushl %esi
+ pushl %edi
+
+
+ movl 12(%esp),%esi
+ xorl %ecx,%ecx
+ pushl %ebx
+ pushl %ebp
+ movl (%esi),%eax
+ movl 28(%esp),%ebx
+ movl 4(%esi),%edi
+
+
+ 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_me_up
+.L000PIC_me_up:
+ popl %ebp
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L000PIC_me_up](%ebp),%ebp
+ movl DES_SPtrans@GOT(%ebp),%ebp
+ movl 24(%esp),%ecx
+ cmpl $0,%ebx
+ je .L001decrypt
+ call _x86_DES_encrypt
+ jmp .L002done
+.L001decrypt:
+ call _x86_DES_decrypt
+.L002done:
+
+
+ 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
+.size DES_encrypt1,.-.L_DES_encrypt1_begin
+.globl DES_encrypt2
+.type DES_encrypt2,@function
+.align 16
+DES_encrypt2:
+.L_DES_encrypt2_begin:
+ pushl %esi
+ pushl %edi
+
+
+ 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_me_up
+.L003PIC_me_up:
+ popl %ebp
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L003PIC_me_up](%ebp),%ebp
+ movl DES_SPtrans@GOT(%ebp),%ebp
+ movl 24(%esp),%ecx
+ cmpl $0,%ebx
+ je .L004decrypt
+ call _x86_DES_encrypt
+ jmp .L005done
+.L004decrypt:
+ call _x86_DES_decrypt
+.L005done:
+
+
+ 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
+.size DES_encrypt2,.-.L_DES_encrypt2_begin
+.globl DES_encrypt3
+.type DES_encrypt3,@function
+.align 16
+DES_encrypt3:
+.L_DES_encrypt3_begin:
+ pushl %ebx
+ movl 8(%esp),%ebx
+ pushl %ebp
+ pushl %esi
+ pushl %edi
+
+
+ movl (%ebx),%edi
+ movl 4(%ebx),%esi
+ subl $12,%esp
+
+
+ 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
+
+
+ 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
+.size DES_encrypt3,.-.L_DES_encrypt3_begin
+.globl DES_decrypt3
+.type DES_decrypt3,@function
+.align 16
+DES_decrypt3:
+.L_DES_decrypt3_begin:
+ pushl %ebx
+ movl 8(%esp),%ebx
+ pushl %ebp
+ pushl %esi
+ pushl %edi
+
+
+ movl (%ebx),%edi
+ movl 4(%ebx),%esi
+ subl $12,%esp
+
+
+ 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
+
+
+ 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
+.size DES_decrypt3,.-.L_DES_decrypt3_begin
+.globl DES_ncbc_encrypt
+.type DES_ncbc_encrypt,@function
+.align 16
+DES_ncbc_encrypt:
+.L_DES_ncbc_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 28(%esp),%ebp
+
+ 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
+
+ movl 56(%esp),%ecx
+
+ pushl %ecx
+
+ 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 64
+.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 64
+.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
+.globl DES_ede3_cbc_encrypt
+.type DES_ede3_cbc_encrypt,@function
+.align 16
+DES_ede3_cbc_encrypt:
+.L_DES_ede3_cbc_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 28(%esp),%ebp
+
+ 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
+
+ movl 64(%esp),%ecx
+
+ movl 56(%esp),%eax
+ pushl %eax
+
+ movl 56(%esp),%eax
+ pushl %eax
+
+ 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 64
+.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 64
+.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
+.globl DES_SPtrans
+.align 64
+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/lib/libcrypto/arch/i386/des.inc b/lib/libcrypto/arch/i386/des.inc
deleted file mode 100644
index e619236e22e..00000000000
--- a/lib/libcrypto/arch/i386/des.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $NetBSD: des.inc,v 1.3 2001/09/10 02:56:58 thorpej Exp $
-
-CPPFLAGS+= -DDES_UNROLL -DDES_RISC2 -DDES_PTR
-
-.include "${.CURDIR}/des.inc"
diff --git a/lib/libcrypto/arch/i386/md5-586.S b/lib/libcrypto/arch/i386/md5-586.S
new file mode 100644
index 00000000000..9316bfa384d
--- /dev/null
+++ b/lib/libcrypto/arch/i386/md5-586.S
@@ -0,0 +1,679 @@
+.file "/net/shiny/src-6/NetBSD/cvsroot/src/crypto/dist/openssl/crypto/md5/asm/md5-586.s"
+.text
+.globl md5_block_asm_data_order
+.type md5_block_asm_data_order,@function
+.align 16
+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:
+
+
+ movl %ecx,%edi
+ movl (%esi),%ebp
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ xorl %edx,%edi
+ xorl %ebx,%edi
+ leal 681279174(%eax,%ebp,1),%eax
+ addl %edi,%eax
+ roll $4,%eax
+ movl (%esi),%ebp
+ movl %ebx,%edi
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size md5_block_asm_data_order,.-.L_md5_block_asm_data_order_begin
diff --git a/lib/libcrypto/arch/i386/md5.inc b/lib/libcrypto/arch/i386/md5.inc
deleted file mode 100644
index 870439dfaea..00000000000
--- a/lib/libcrypto/arch/i386/md5.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-# $NetBSD: md5.inc,v 1.1 2000/07/31 19:08:02 thorpej Exp $
-#
-# @(#) Copyright (c) 1995 Simon J. Gerraty
-#
-# SRCS extracted from /home/current/src/lib/libcrypto/../../crypto/dist/openssl/crypto/md5/Makefile.ssl
-#
-
-.PATH: ${OPENSSLSRC}/crypto/md5
-.PATH: ${.CURDIR}/arch/i386
-
-CPPFLAGS+= -I${OPENSSLSRC}/crypto/md5
-CPPFLAGS+= -DMD5_ASM
-
-SRCS+=md5_dgst.c md5_dgst_586.S md5_one.c
diff --git a/lib/libcrypto/arch/i386/md5_dgst_586.S b/lib/libcrypto/arch/i386/md5_dgst_586.S
deleted file mode 100644
index eddcdc153f0..00000000000
--- a/lib/libcrypto/arch/i386/md5_dgst_586.S
+++ /dev/null
@@ -1,738 +0,0 @@
-/* $NetBSD: md5_dgst_586.S,v 1.2 2003/11/12 16:20:27 itojun Exp $ */
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-/*
- * Modified from the output of `perl md5-586.pl elf' by
- * Jason R. Thorpe <thorpej@zembu.com>.
- */
-
-#include <machine/asm.h>
-
-ENTRY(md5_block_asm_host_order)
- pushl %esi
- pushl %edi
- movl 12(%esp), %edi
- movl 16(%esp), %esi
- movl 20(%esp), %ecx
- pushl %ebp
- sall $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/lib/libcrypto/arch/i386/rc4-586.S b/lib/libcrypto/arch/i386/rc4-586.S
new file mode 100644
index 00000000000..119a38e7706
--- /dev/null
+++ b/lib/libcrypto/arch/i386/rc4-586.S
@@ -0,0 +1,238 @@
+.file "rc4-586.s"
+.text
+.globl RC4
+.type RC4,@function
+.align 16
+RC4:
+.L_RC4_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 20(%esp),%edi
+ movl 24(%esp),%edx
+ movl 28(%esp),%esi
+ movl 32(%esp),%ebp
+ xorl %eax,%eax
+ xorl %ebx,%ebx
+ cmpl $0,%edx
+ je .L000abort
+ movb (%edi),%al
+ movb 4(%edi),%bl
+ addl $8,%edi
+ leal (%esi,%edx,1),%ecx
+ subl %esi,%ebp
+ movl %ecx,24(%esp)
+ incb %al
+ cmpl $-1,256(%edi)
+ je .L001RC4_CHAR
+ movl (%edi,%eax,4),%ecx
+ andl $-4,%edx
+ jz .L002loop1
+ leal -4(%esi,%edx,1),%edx
+ movl %edx,28(%esp)
+ movl %ebp,32(%esp)
+.align 16
+.L003loop4:
+ addb %cl,%bl
+ movl (%edi,%ebx,4),%edx
+ movl %ecx,(%edi,%ebx,4)
+ movl %edx,(%edi,%eax,4)
+ addl %ecx,%edx
+ incb %al
+ andl $255,%edx
+ movl (%edi,%eax,4),%ecx
+ movl (%edi,%edx,4),%ebp
+ addb %cl,%bl
+ movl (%edi,%ebx,4),%edx
+ movl %ecx,(%edi,%ebx,4)
+ movl %edx,(%edi,%eax,4)
+ addl %ecx,%edx
+ incb %al
+ andl $255,%edx
+ rorl $8,%ebp
+ movl (%edi,%eax,4),%ecx
+ orl (%edi,%edx,4),%ebp
+ addb %cl,%bl
+ movl (%edi,%ebx,4),%edx
+ movl %ecx,(%edi,%ebx,4)
+ movl %edx,(%edi,%eax,4)
+ addl %ecx,%edx
+ incb %al
+ andl $255,%edx
+ rorl $8,%ebp
+ movl (%edi,%eax,4),%ecx
+ orl (%edi,%edx,4),%ebp
+ addb %cl,%bl
+ movl (%edi,%ebx,4),%edx
+ movl %ecx,(%edi,%ebx,4)
+ movl %edx,(%edi,%eax,4)
+ addl %ecx,%edx
+ incb %al
+ andl $255,%edx
+ rorl $8,%ebp
+ movl 32(%esp),%ecx
+ orl (%edi,%edx,4),%ebp
+ rorl $8,%ebp
+ xorl (%esi),%ebp
+ cmpl 28(%esp),%esi
+ movl %ebp,(%ecx,%esi,1)
+ leal 4(%esi),%esi
+ movl (%edi,%eax,4),%ecx
+ jb .L003loop4
+ cmpl 24(%esp),%esi
+ je .L004done
+ movl 32(%esp),%ebp
+.align 16
+.L002loop1:
+ addb %cl,%bl
+ movl (%edi,%ebx,4),%edx
+ movl %ecx,(%edi,%ebx,4)
+ movl %edx,(%edi,%eax,4)
+ addl %ecx,%edx
+ incb %al
+ andl $255,%edx
+ movl (%edi,%edx,4),%edx
+ xorb (%esi),%dl
+ leal 1(%esi),%esi
+ movl (%edi,%eax,4),%ecx
+ cmpl 24(%esp),%esi
+ movb %dl,-1(%ebp,%esi,1)
+ jb .L002loop1
+ jmp .L004done
+.align 16
+.L001RC4_CHAR:
+ movzbl (%edi,%eax,1),%ecx
+.L005cloop1:
+ addb %cl,%bl
+ movzbl (%edi,%ebx,1),%edx
+ movb %cl,(%edi,%ebx,1)
+ movb %dl,(%edi,%eax,1)
+ addb %cl,%dl
+ movzbl (%edi,%edx,1),%edx
+ addb $1,%al
+ xorb (%esi),%dl
+ leal 1(%esi),%esi
+ movzbl (%edi,%eax,1),%ecx
+ cmpl 24(%esp),%esi
+ movb %dl,-1(%ebp,%esi,1)
+ jb .L005cloop1
+.L004done:
+ decb %al
+ movb %bl,-4(%edi)
+ movb %al,-8(%edi)
+.L000abort:
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size RC4,.-.L_RC4_begin
+.globl RC4_set_key
+.type RC4_set_key,@function
+.align 16
+RC4_set_key:
+.L_RC4_set_key_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 20(%esp),%edi
+ movl 24(%esp),%ebp
+ movl 28(%esp),%esi
+ call .L006PIC_me_up
+.L006PIC_me_up:
+ popl %edx
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L006PIC_me_up](%edx),%edx
+ movl OPENSSL_ia32cap_P@GOT(%edx),%edx
+ leal 8(%edi),%edi
+ leal (%esi,%ebp,1),%esi
+ negl %ebp
+ xorl %eax,%eax
+ movl %ebp,-4(%edi)
+ btl $20,(%edx)
+ jc .L007c1stloop
+.align 16
+.L008w1stloop:
+ movl %eax,(%edi,%eax,4)
+ addb $1,%al
+ jnc .L008w1stloop
+ xorl %ecx,%ecx
+ xorl %edx,%edx
+.align 16
+.L009w2ndloop:
+ movl (%edi,%ecx,4),%eax
+ addb (%esi,%ebp,1),%dl
+ addb %al,%dl
+ addl $1,%ebp
+ movl (%edi,%edx,4),%ebx
+ jnz .L010wnowrap
+ movl -4(%edi),%ebp
+.L010wnowrap:
+ movl %eax,(%edi,%edx,4)
+ movl %ebx,(%edi,%ecx,4)
+ addb $1,%cl
+ jnc .L009w2ndloop
+ jmp .L011exit
+.align 16
+.L007c1stloop:
+ movb %al,(%edi,%eax,1)
+ addb $1,%al
+ jnc .L007c1stloop
+ xorl %ecx,%ecx
+ xorl %edx,%edx
+ xorl %ebx,%ebx
+.align 16
+.L012c2ndloop:
+ movb (%edi,%ecx,1),%al
+ addb (%esi,%ebp,1),%dl
+ addb %al,%dl
+ addl $1,%ebp
+ movb (%edi,%edx,1),%bl
+ jnz .L013cnowrap
+ movl -4(%edi),%ebp
+.L013cnowrap:
+ movb %al,(%edi,%edx,1)
+ movb %bl,(%edi,%ecx,1)
+ addb $1,%cl
+ jnc .L012c2ndloop
+ movl $-1,256(%edi)
+.L011exit:
+ xorl %eax,%eax
+ movl %eax,-8(%edi)
+ movl %eax,-4(%edi)
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size RC4_set_key,.-.L_RC4_set_key_begin
+.globl RC4_options
+.type RC4_options,@function
+.align 16
+RC4_options:
+.L_RC4_options_begin:
+ call .L014pic_point
+.L014pic_point:
+ popl %eax
+ leal .L015opts-.L014pic_point(%eax),%eax
+ call .L016PIC_me_up
+.L016PIC_me_up:
+ popl %edx
+ leal _GLOBAL_OFFSET_TABLE_+[.-.L016PIC_me_up](%edx),%edx
+ movl OPENSSL_ia32cap_P@GOT(%edx),%edx
+ btl $20,(%edx)
+ jnc .L017skip
+ addl $12,%eax
+.L017skip:
+ ret
+.align 64
+.L015opts:
+.byte 114,99,52,40,52,120,44,105,110,116,41,0
+.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
+.byte 82,67,52,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
+.align 64
+.size RC4_options,.-.L_RC4_options_begin
+.comm OPENSSL_ia32cap_P,4,4
diff --git a/lib/libcrypto/arch/i386/rc4.inc b/lib/libcrypto/arch/i386/rc4.inc
new file mode 100644
index 00000000000..c2b48a46a5c
--- /dev/null
+++ b/lib/libcrypto/arch/i386/rc4.inc
@@ -0,0 +1,3 @@
+.PATH.S: ${.PARSEDIR}
+RC4_SRCS = rc4-x86_64.S
+.include "../../rc4.inc"
diff --git a/lib/libcrypto/arch/i386/rc5-586.S b/lib/libcrypto/arch/i386/rc5-586.S
new file mode 100644
index 00000000000..ff8a4929ab7
--- /dev/null
+++ b/lib/libcrypto/arch/i386/rc5-586.S
@@ -0,0 +1,564 @@
+.file "rc5-586.s"
+.text
+.globl RC5_32_encrypt
+.type RC5_32_encrypt,@function
+.align 16
+RC5_32_encrypt:
+.L_RC5_32_encrypt_begin:
+
+ pushl %ebp
+ pushl %esi
+ pushl %edi
+ movl 16(%esp),%edx
+ movl 20(%esp),%ebp
+
+ movl (%edx),%edi
+ movl 4(%edx),%esi
+ pushl %ebx
+ movl (%ebp),%ebx
+ addl 4(%ebp),%edi
+ addl 8(%ebp),%esi
+ xorl %esi,%edi
+ movl 12(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 16(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 20(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 24(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 28(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 32(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 36(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 40(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 44(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 48(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 52(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 56(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 60(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 64(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 68(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 72(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ cmpl $8,%ebx
+ je .L000rc5_exit
+ xorl %esi,%edi
+ movl 76(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 80(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 84(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 88(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 92(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 96(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 100(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 104(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ cmpl $12,%ebx
+ je .L000rc5_exit
+ xorl %esi,%edi
+ movl 108(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 112(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 116(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 120(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 124(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 128(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+ xorl %esi,%edi
+ movl 132(%ebp),%eax
+ movl %esi,%ecx
+ roll %cl,%edi
+ addl %eax,%edi
+ xorl %edi,%esi
+ movl 136(%ebp),%eax
+ movl %edi,%ecx
+ roll %cl,%esi
+ addl %eax,%esi
+.L000rc5_exit:
+ movl %edi,(%edx)
+ movl %esi,4(%edx)
+ popl %ebx
+ popl %edi
+ popl %esi
+ popl %ebp
+ ret
+.size RC5_32_encrypt,.-.L_RC5_32_encrypt_begin
+.globl RC5_32_decrypt
+.type RC5_32_decrypt,@function
+.align 16
+RC5_32_decrypt:
+.L_RC5_32_decrypt_begin:
+
+ pushl %ebp
+ pushl %esi
+ pushl %edi
+ movl 16(%esp),%edx
+ movl 20(%esp),%ebp
+
+ movl (%edx),%edi
+ movl 4(%edx),%esi
+ pushl %ebx
+ movl (%ebp),%ebx
+ cmpl $12,%ebx
+ je .L001rc5_dec_12
+ cmpl $8,%ebx
+ je .L002rc5_dec_8
+ movl 136(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 132(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 128(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 124(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 120(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 116(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 112(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 108(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+.L001rc5_dec_12:
+ movl 104(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 100(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 96(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 92(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 88(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 84(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 80(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 76(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+.L002rc5_dec_8:
+ movl 72(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 68(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 64(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 60(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 56(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 52(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 48(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 44(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 40(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 36(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 32(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 28(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 24(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 20(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ movl 16(%ebp),%eax
+ subl %eax,%esi
+ movl %edi,%ecx
+ rorl %cl,%esi
+ xorl %edi,%esi
+ movl 12(%ebp),%eax
+ subl %eax,%edi
+ movl %esi,%ecx
+ rorl %cl,%edi
+ xorl %esi,%edi
+ subl 8(%ebp),%esi
+ subl 4(%ebp),%edi
+.L003rc5_exit:
+ movl %edi,(%edx)
+ movl %esi,4(%edx)
+ popl %ebx
+ popl %edi
+ popl %esi
+ popl %ebp
+ ret
+.size RC5_32_decrypt,.-.L_RC5_32_decrypt_begin
+.globl RC5_32_cbc_encrypt
+.type RC5_32_cbc_encrypt,@function
+.align 16
+RC5_32_cbc_encrypt:
+.L_RC5_32_cbc_encrypt_begin:
+
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 28(%esp),%ebp
+
+ 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
+
+ movl 56(%esp),%ecx
+
+ movl 48(%esp),%eax
+ pushl %eax
+ pushl %ebx
+ cmpl $0,%ecx
+ jz .L004decrypt
+ andl $4294967288,%ebp
+ movl 8(%esp),%eax
+ movl 12(%esp),%ebx
+ jz .L005encrypt_finish
+.L006encrypt_loop:
+ movl (%esi),%ecx
+ movl 4(%esi),%edx
+ xorl %ecx,%eax
+ xorl %edx,%ebx
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+ call .L_RC5_32_encrypt_begin
+ movl 8(%esp),%eax
+ movl 12(%esp),%ebx
+ movl %eax,(%edi)
+ movl %ebx,4(%edi)
+ addl $8,%esi
+ addl $8,%edi
+ subl $8,%ebp
+ jnz .L006encrypt_loop
+.L005encrypt_finish:
+ movl 52(%esp),%ebp
+ andl $7,%ebp
+ jz .L007finish
+ call .L008PIC_point
+.L008PIC_point:
+ popl %edx
+ leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
+ movl (%ecx,%ebp,4),%ebp
+ addl %edx,%ebp
+ xorl %ecx,%ecx
+ xorl %edx,%edx
+ jmp *%ebp
+.L010ej7:
+ movb 6(%esi),%dh
+ shll $8,%edx
+.L011ej6:
+ movb 5(%esi),%dh
+.L012ej5:
+ movb 4(%esi),%dl
+.L013ej4:
+ movl (%esi),%ecx
+ jmp .L014ejend
+.L015ej3:
+ movb 2(%esi),%ch
+ shll $8,%ecx
+.L016ej2:
+ movb 1(%esi),%ch
+.L017ej1:
+ movb (%esi),%cl
+.L014ejend:
+ xorl %ecx,%eax
+ xorl %edx,%ebx
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+ call .L_RC5_32_encrypt_begin
+ movl 8(%esp),%eax
+ movl 12(%esp),%ebx
+ movl %eax,(%edi)
+ movl %ebx,4(%edi)
+ jmp .L007finish
+.L004decrypt:
+ andl $4294967288,%ebp
+ movl 16(%esp),%eax
+ movl 20(%esp),%ebx
+ jz .L018decrypt_finish
+.L019decrypt_loop:
+ movl (%esi),%eax
+ movl 4(%esi),%ebx
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+ call .L_RC5_32_decrypt_begin
+ movl 8(%esp),%eax
+ movl 12(%esp),%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 .L019decrypt_loop
+.L018decrypt_finish:
+ movl 52(%esp),%ebp
+ andl $7,%ebp
+ jz .L007finish
+ movl (%esi),%eax
+ movl 4(%esi),%ebx
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+ call .L_RC5_32_decrypt_begin
+ movl 8(%esp),%eax
+ movl 12(%esp),%ebx
+ movl 16(%esp),%ecx
+ movl 20(%esp),%edx
+ xorl %eax,%ecx
+ xorl %ebx,%edx
+ movl (%esi),%eax
+ movl 4(%esi),%ebx
+.L020dj7:
+ rorl $16,%edx
+ movb %dl,6(%edi)
+ shrl $16,%edx
+.L021dj6:
+ movb %dh,5(%edi)
+.L022dj5:
+ movb %dl,4(%edi)
+.L023dj4:
+ movl %ecx,(%edi)
+ jmp .L024djend
+.L025dj3:
+ rorl $16,%ecx
+ movb %cl,2(%edi)
+ shll $16,%ecx
+.L026dj2:
+ movb %ch,1(%esi)
+.L027dj1:
+ movb %cl,(%esi)
+.L024djend:
+ jmp .L007finish
+.L007finish:
+ movl 60(%esp),%ecx
+ addl $24,%esp
+ movl %eax,(%ecx)
+ movl %ebx,4(%ecx)
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.align 64
+.L009cbc_enc_jmp_table:
+.long 0
+.long .L017ej1-.L008PIC_point
+.long .L016ej2-.L008PIC_point
+.long .L015ej3-.L008PIC_point
+.long .L013ej4-.L008PIC_point
+.long .L012ej5-.L008PIC_point
+.long .L011ej6-.L008PIC_point
+.long .L010ej7-.L008PIC_point
+.align 64
+.size RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin
diff --git a/lib/libcrypto/arch/i386/ripemd.inc b/lib/libcrypto/arch/i386/ripemd.inc
deleted file mode 100644
index 156d251b23d..00000000000
--- a/lib/libcrypto/arch/i386/ripemd.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-# $NetBSD: ripemd.inc,v 1.1 2000/07/31 19:22:04 thorpej Exp $
-#
-# @(#) Copyright (c) 1995 Simon J. Gerraty
-#
-# SRCS extracted from /home/current/src/lib/libcrypto/../../crypto/dist/openssl/crypto/ripemd/Makefile.ssl
-#
-
-.PATH: ${OPENSSLSRC}/crypto/ripemd
-.PATH: ${.CURDIR}/arch/i386
-
-CPPFLAGS+= -I${OPENSSLSRC}/crypto/ripemd
-CPPFLAGS+= -DRMD160_ASM
-
-SRCS+=rmd_dgst.c rmd_dgst_586.S rmd_one.c
diff --git a/lib/libcrypto/arch/i386/rmd-586.S b/lib/libcrypto/arch/i386/rmd-586.S
new file mode 100644
index 00000000000..f6b7588073f
--- /dev/null
+++ b/lib/libcrypto/arch/i386/rmd-586.S
@@ -0,0 +1,1965 @@
+.file "/net/shiny/src-6/NetBSD/cvsroot/src/crypto/dist/openssl/crypto/ripemd/asm/rmd-586.s"
+.text
+.globl ripemd160_block_asm_data_order
+.type ripemd160_block_asm_data_order,@function
+.align 16
+ripemd160_block_asm_data_order:
+.L_ripemd160_block_asm_data_order_begin:
+ movl 4(%esp),%edx
+ movl 8(%esp),%eax
+ pushl %esi
+ movl (%edx),%ecx
+ pushl %edi
+ movl 4(%edx),%esi
+ pushl %ebp
+ movl 8(%edx),%edi
+ pushl %ebx
+ subl $108,%esp
+.L000start:
+
+ movl (%eax),%ebx
+ movl 4(%eax),%ebp
+ movl %ebx,(%esp)
+ movl %ebp,4(%esp)
+ movl 8(%eax),%ebx
+ movl 12(%eax),%ebp
+ movl %ebx,8(%esp)
+ movl %ebp,12(%esp)
+ movl 16(%eax),%ebx
+ movl 20(%eax),%ebp
+ movl %ebx,16(%esp)
+ movl %ebp,20(%esp)
+ movl 24(%eax),%ebx
+ movl 28(%eax),%ebp
+ movl %ebx,24(%esp)
+ movl %ebp,28(%esp)
+ movl 32(%eax),%ebx
+ movl 36(%eax),%ebp
+ movl %ebx,32(%esp)
+ movl %ebp,36(%esp)
+ movl 40(%eax),%ebx
+ movl 44(%eax),%ebp
+ movl %ebx,40(%esp)
+ movl %ebp,44(%esp)
+ movl 48(%eax),%ebx
+ movl 52(%eax),%ebp
+ movl %ebx,48(%esp)
+ movl %ebp,52(%esp)
+ movl 56(%eax),%ebx
+ movl 60(%eax),%ebp
+ movl %ebx,56(%esp)
+ movl %ebp,60(%esp)
+ movl %edi,%eax
+ movl 12(%edx),%ebx
+ movl 16(%edx),%ebp
+
+ xorl %ebx,%eax
+ movl (%esp),%edx
+ xorl %esi,%eax
+ addl %edx,%ecx
+ roll $10,%edi
+ addl %eax,%ecx
+ movl %esi,%eax
+ roll $11,%ecx
+ addl %ebp,%ecx
+
+ xorl %edi,%eax
+ movl 4(%esp),%edx
+ xorl %ecx,%eax
+ addl %eax,%ebp
+ movl %ecx,%eax
+ roll $10,%esi
+ addl %edx,%ebp
+ xorl %esi,%eax
+ roll $14,%ebp
+ addl %ebx,%ebp
+
+ movl 8(%esp),%edx
+ xorl %ebp,%eax
+ addl %edx,%ebx
+ roll $10,%ecx
+ addl %eax,%ebx
+ movl %ebp,%eax
+ roll $15,%ebx
+ addl %edi,%ebx
+
+ xorl %ecx,%eax
+ movl 12(%esp),%edx
+ xorl %ebx,%eax
+ addl %eax,%edi
+ movl %ebx,%eax
+ roll $10,%ebp
+ addl %edx,%edi
+ xorl %ebp,%eax
+ roll $12,%edi
+ addl %esi,%edi
+
+ movl 16(%esp),%edx
+ xorl %edi,%eax
+ addl %edx,%esi
+ roll $10,%ebx
+ addl %eax,%esi
+ movl %edi,%eax
+ roll $5,%esi
+ addl %ecx,%esi
+
+ xorl %ebx,%eax
+ movl 20(%esp),%edx
+ xorl %esi,%eax
+ addl %eax,%ecx
+ movl %esi,%eax
+ roll $10,%edi
+ addl %edx,%ecx
+ xorl %edi,%eax
+ roll $8,%ecx
+ addl %ebp,%ecx
+
+ movl 24(%esp),%edx
+ xorl %ecx,%eax
+ addl %edx,%ebp
+ roll $10,%esi
+ addl %eax,%ebp
+ movl %ecx,%eax
+ roll $7,%ebp
+ addl %ebx,%ebp
+
+ xorl %esi,%eax
+ movl 28(%esp),%edx
+ xorl %ebp,%eax
+ addl %eax,%ebx
+ movl %ebp,%eax
+ roll $10,%ecx
+ addl %edx,%ebx
+ xorl %ecx,%eax
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ movl 32(%esp),%edx
+ xorl %ebx,%eax
+ addl %edx,%edi
+ roll $10,%ebp
+ addl %eax,%edi
+ movl %ebx,%eax
+ roll $11,%edi
+ addl %esi,%edi
+
+ xorl %ebp,%eax
+ movl 36(%esp),%edx
+ xorl %edi,%eax
+ addl %eax,%esi
+ movl %edi,%eax
+ roll $10,%ebx
+ addl %edx,%esi
+ xorl %ebx,%eax
+ roll $13,%esi
+ addl %ecx,%esi
+
+ movl 40(%esp),%edx
+ xorl %esi,%eax
+ addl %edx,%ecx
+ roll $10,%edi
+ addl %eax,%ecx
+ movl %esi,%eax
+ roll $14,%ecx
+ addl %ebp,%ecx
+
+ xorl %edi,%eax
+ movl 44(%esp),%edx
+ xorl %ecx,%eax
+ addl %eax,%ebp
+ movl %ecx,%eax
+ roll $10,%esi
+ addl %edx,%ebp
+ xorl %esi,%eax
+ roll $15,%ebp
+ addl %ebx,%ebp
+
+ movl 48(%esp),%edx
+ xorl %ebp,%eax
+ addl %edx,%ebx
+ roll $10,%ecx
+ addl %eax,%ebx
+ movl %ebp,%eax
+ roll $6,%ebx
+ addl %edi,%ebx
+
+ xorl %ecx,%eax
+ movl 52(%esp),%edx
+ xorl %ebx,%eax
+ addl %eax,%edi
+ movl %ebx,%eax
+ roll $10,%ebp
+ addl %edx,%edi
+ xorl %ebp,%eax
+ roll $7,%edi
+ addl %esi,%edi
+
+ movl 56(%esp),%edx
+ xorl %edi,%eax
+ addl %edx,%esi
+ roll $10,%ebx
+ addl %eax,%esi
+ movl %edi,%eax
+ roll $9,%esi
+ addl %ecx,%esi
+
+ xorl %ebx,%eax
+ movl 60(%esp),%edx
+ xorl %esi,%eax
+ addl %eax,%ecx
+ movl $-1,%eax
+ roll $10,%edi
+ addl %edx,%ecx
+ movl 28(%esp),%edx
+ roll $8,%ecx
+ addl %ebp,%ecx
+
+ addl %edx,%ebp
+ movl %esi,%edx
+ subl %ecx,%eax
+ andl %ecx,%edx
+ andl %edi,%eax
+ orl %eax,%edx
+ movl 16(%esp),%eax
+ roll $10,%esi
+ leal 1518500249(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ roll $7,%ebp
+ addl %ebx,%ebp
+
+ addl %eax,%ebx
+ movl %ecx,%eax
+ subl %ebp,%edx
+ andl %ebp,%eax
+ andl %esi,%edx
+ orl %edx,%eax
+ movl 52(%esp),%edx
+ roll $10,%ecx
+ leal 1518500249(%ebx,%eax,1),%ebx
+ movl $-1,%eax
+ roll $6,%ebx
+ addl %edi,%ebx
+
+ addl %edx,%edi
+ movl %ebp,%edx
+ subl %ebx,%eax
+ andl %ebx,%edx
+ andl %ecx,%eax
+ orl %eax,%edx
+ movl 4(%esp),%eax
+ roll $10,%ebp
+ leal 1518500249(%edi,%edx,1),%edi
+ movl $-1,%edx
+ roll $8,%edi
+ addl %esi,%edi
+
+ addl %eax,%esi
+ movl %ebx,%eax
+ subl %edi,%edx
+ andl %edi,%eax
+ andl %ebp,%edx
+ orl %edx,%eax
+ movl 40(%esp),%edx
+ roll $10,%ebx
+ leal 1518500249(%esi,%eax,1),%esi
+ movl $-1,%eax
+ roll $13,%esi
+ addl %ecx,%esi
+
+ addl %edx,%ecx
+ movl %edi,%edx
+ subl %esi,%eax
+ andl %esi,%edx
+ andl %ebx,%eax
+ orl %eax,%edx
+ movl 24(%esp),%eax
+ roll $10,%edi
+ leal 1518500249(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ roll $11,%ecx
+ addl %ebp,%ecx
+
+ addl %eax,%ebp
+ movl %esi,%eax
+ subl %ecx,%edx
+ andl %ecx,%eax
+ andl %edi,%edx
+ orl %edx,%eax
+ movl 60(%esp),%edx
+ roll $10,%esi
+ leal 1518500249(%ebp,%eax,1),%ebp
+ movl $-1,%eax
+ roll $9,%ebp
+ addl %ebx,%ebp
+
+ addl %edx,%ebx
+ movl %ecx,%edx
+ subl %ebp,%eax
+ andl %ebp,%edx
+ andl %esi,%eax
+ orl %eax,%edx
+ movl 12(%esp),%eax
+ roll $10,%ecx
+ leal 1518500249(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ roll $7,%ebx
+ addl %edi,%ebx
+
+ addl %eax,%edi
+ movl %ebp,%eax
+ subl %ebx,%edx
+ andl %ebx,%eax
+ andl %ecx,%edx
+ orl %edx,%eax
+ movl 48(%esp),%edx
+ roll $10,%ebp
+ leal 1518500249(%edi,%eax,1),%edi
+ movl $-1,%eax
+ roll $15,%edi
+ addl %esi,%edi
+
+ addl %edx,%esi
+ movl %ebx,%edx
+ subl %edi,%eax
+ andl %edi,%edx
+ andl %ebp,%eax
+ orl %eax,%edx
+ movl (%esp),%eax
+ roll $10,%ebx
+ leal 1518500249(%esi,%edx,1),%esi
+ movl $-1,%edx
+ roll $7,%esi
+ addl %ecx,%esi
+
+ addl %eax,%ecx
+ movl %edi,%eax
+ subl %esi,%edx
+ andl %esi,%eax
+ andl %ebx,%edx
+ orl %edx,%eax
+ movl 36(%esp),%edx
+ roll $10,%edi
+ leal 1518500249(%ecx,%eax,1),%ecx
+ movl $-1,%eax
+ roll $12,%ecx
+ addl %ebp,%ecx
+
+ addl %edx,%ebp
+ movl %esi,%edx
+ subl %ecx,%eax
+ andl %ecx,%edx
+ andl %edi,%eax
+ orl %eax,%edx
+ movl 20(%esp),%eax
+ roll $10,%esi
+ leal 1518500249(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ roll $15,%ebp
+ addl %ebx,%ebp
+
+ addl %eax,%ebx
+ movl %ecx,%eax
+ subl %ebp,%edx
+ andl %ebp,%eax
+ andl %esi,%edx
+ orl %edx,%eax
+ movl 8(%esp),%edx
+ roll $10,%ecx
+ leal 1518500249(%ebx,%eax,1),%ebx
+ movl $-1,%eax
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ addl %edx,%edi
+ movl %ebp,%edx
+ subl %ebx,%eax
+ andl %ebx,%edx
+ andl %ecx,%eax
+ orl %eax,%edx
+ movl 56(%esp),%eax
+ roll $10,%ebp
+ leal 1518500249(%edi,%edx,1),%edi
+ movl $-1,%edx
+ roll $11,%edi
+ addl %esi,%edi
+
+ addl %eax,%esi
+ movl %ebx,%eax
+ subl %edi,%edx
+ andl %edi,%eax
+ andl %ebp,%edx
+ orl %edx,%eax
+ movl 44(%esp),%edx
+ roll $10,%ebx
+ leal 1518500249(%esi,%eax,1),%esi
+ movl $-1,%eax
+ roll $7,%esi
+ addl %ecx,%esi
+
+ addl %edx,%ecx
+ movl %edi,%edx
+ subl %esi,%eax
+ andl %esi,%edx
+ andl %ebx,%eax
+ orl %eax,%edx
+ movl 32(%esp),%eax
+ roll $10,%edi
+ leal 1518500249(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ roll $13,%ecx
+ addl %ebp,%ecx
+
+ addl %eax,%ebp
+ movl %esi,%eax
+ subl %ecx,%edx
+ andl %ecx,%eax
+ andl %edi,%edx
+ orl %edx,%eax
+ movl $-1,%edx
+ roll $10,%esi
+ leal 1518500249(%ebp,%eax,1),%ebp
+ subl %ecx,%edx
+ roll $12,%ebp
+ addl %ebx,%ebp
+
+ movl 12(%esp),%eax
+ orl %ebp,%edx
+ addl %eax,%ebx
+ xorl %esi,%edx
+ movl $-1,%eax
+ roll $10,%ecx
+ leal 1859775393(%ebx,%edx,1),%ebx
+ subl %ebp,%eax
+ roll $11,%ebx
+ addl %edi,%ebx
+
+ movl 40(%esp),%edx
+ orl %ebx,%eax
+ addl %edx,%edi
+ xorl %ecx,%eax
+ movl $-1,%edx
+ roll $10,%ebp
+ leal 1859775393(%edi,%eax,1),%edi
+ subl %ebx,%edx
+ roll $13,%edi
+ addl %esi,%edi
+
+ movl 56(%esp),%eax
+ orl %edi,%edx
+ addl %eax,%esi
+ xorl %ebp,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 1859775393(%esi,%edx,1),%esi
+ subl %edi,%eax
+ roll $6,%esi
+ addl %ecx,%esi
+
+ movl 16(%esp),%edx
+ orl %esi,%eax
+ addl %edx,%ecx
+ xorl %ebx,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 1859775393(%ecx,%eax,1),%ecx
+ subl %esi,%edx
+ roll $7,%ecx
+ addl %ebp,%ecx
+
+ movl 36(%esp),%eax
+ orl %ecx,%edx
+ addl %eax,%ebp
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%esi
+ leal 1859775393(%ebp,%edx,1),%ebp
+ subl %ecx,%eax
+ roll $14,%ebp
+ addl %ebx,%ebp
+
+ movl 60(%esp),%edx
+ orl %ebp,%eax
+ addl %edx,%ebx
+ xorl %esi,%eax
+ movl $-1,%edx
+ roll $10,%ecx
+ leal 1859775393(%ebx,%eax,1),%ebx
+ subl %ebp,%edx
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ movl 32(%esp),%eax
+ orl %ebx,%edx
+ addl %eax,%edi
+ xorl %ecx,%edx
+ movl $-1,%eax
+ roll $10,%ebp
+ leal 1859775393(%edi,%edx,1),%edi
+ subl %ebx,%eax
+ roll $13,%edi
+ addl %esi,%edi
+
+ movl 4(%esp),%edx
+ orl %edi,%eax
+ addl %edx,%esi
+ xorl %ebp,%eax
+ movl $-1,%edx
+ roll $10,%ebx
+ leal 1859775393(%esi,%eax,1),%esi
+ subl %edi,%edx
+ roll $15,%esi
+ addl %ecx,%esi
+
+ movl 8(%esp),%eax
+ orl %esi,%edx
+ addl %eax,%ecx
+ xorl %ebx,%edx
+ movl $-1,%eax
+ roll $10,%edi
+ leal 1859775393(%ecx,%edx,1),%ecx
+ subl %esi,%eax
+ roll $14,%ecx
+ addl %ebp,%ecx
+
+ movl 28(%esp),%edx
+ orl %ecx,%eax
+ addl %edx,%ebp
+ xorl %edi,%eax
+ movl $-1,%edx
+ roll $10,%esi
+ leal 1859775393(%ebp,%eax,1),%ebp
+ subl %ecx,%edx
+ roll $8,%ebp
+ addl %ebx,%ebp
+
+ movl (%esp),%eax
+ orl %ebp,%edx
+ addl %eax,%ebx
+ xorl %esi,%edx
+ movl $-1,%eax
+ roll $10,%ecx
+ leal 1859775393(%ebx,%edx,1),%ebx
+ subl %ebp,%eax
+ roll $13,%ebx
+ addl %edi,%ebx
+
+ movl 24(%esp),%edx
+ orl %ebx,%eax
+ addl %edx,%edi
+ xorl %ecx,%eax
+ movl $-1,%edx
+ roll $10,%ebp
+ leal 1859775393(%edi,%eax,1),%edi
+ subl %ebx,%edx
+ roll $6,%edi
+ addl %esi,%edi
+
+ movl 52(%esp),%eax
+ orl %edi,%edx
+ addl %eax,%esi
+ xorl %ebp,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 1859775393(%esi,%edx,1),%esi
+ subl %edi,%eax
+ roll $5,%esi
+ addl %ecx,%esi
+
+ movl 44(%esp),%edx
+ orl %esi,%eax
+ addl %edx,%ecx
+ xorl %ebx,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 1859775393(%ecx,%eax,1),%ecx
+ subl %esi,%edx
+ roll $12,%ecx
+ addl %ebp,%ecx
+
+ movl 20(%esp),%eax
+ orl %ecx,%edx
+ addl %eax,%ebp
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%esi
+ leal 1859775393(%ebp,%edx,1),%ebp
+ subl %ecx,%eax
+ roll $7,%ebp
+ addl %ebx,%ebp
+
+ movl 48(%esp),%edx
+ orl %ebp,%eax
+ addl %edx,%ebx
+ xorl %esi,%eax
+ movl $-1,%edx
+ roll $10,%ecx
+ leal 1859775393(%ebx,%eax,1),%ebx
+ movl %ecx,%eax
+ roll $5,%ebx
+ addl %edi,%ebx
+
+ subl %ecx,%edx
+ andl %ebx,%eax
+ andl %ebp,%edx
+ orl %eax,%edx
+ movl 4(%esp),%eax
+ roll $10,%ebp
+ leal 2400959708(%edi,%edx,1),%edi
+ movl $-1,%edx
+ addl %eax,%edi
+ movl %ebp,%eax
+ roll $11,%edi
+ addl %esi,%edi
+
+ subl %ebp,%edx
+ andl %edi,%eax
+ andl %ebx,%edx
+ orl %eax,%edx
+ movl 36(%esp),%eax
+ roll $10,%ebx
+ leal 2400959708(%esi,%edx,1),%esi
+ movl $-1,%edx
+ addl %eax,%esi
+ movl %ebx,%eax
+ roll $12,%esi
+ addl %ecx,%esi
+
+ subl %ebx,%edx
+ andl %esi,%eax
+ andl %edi,%edx
+ orl %eax,%edx
+ movl 44(%esp),%eax
+ roll $10,%edi
+ leal 2400959708(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ addl %eax,%ecx
+ movl %edi,%eax
+ roll $14,%ecx
+ addl %ebp,%ecx
+
+ subl %edi,%edx
+ andl %ecx,%eax
+ andl %esi,%edx
+ orl %eax,%edx
+ movl 40(%esp),%eax
+ roll $10,%esi
+ leal 2400959708(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ addl %eax,%ebp
+ movl %esi,%eax
+ roll $15,%ebp
+ addl %ebx,%ebp
+
+ subl %esi,%edx
+ andl %ebp,%eax
+ andl %ecx,%edx
+ orl %eax,%edx
+ movl (%esp),%eax
+ roll $10,%ecx
+ leal 2400959708(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ addl %eax,%ebx
+ movl %ecx,%eax
+ roll $14,%ebx
+ addl %edi,%ebx
+
+ subl %ecx,%edx
+ andl %ebx,%eax
+ andl %ebp,%edx
+ orl %eax,%edx
+ movl 32(%esp),%eax
+ roll $10,%ebp
+ leal 2400959708(%edi,%edx,1),%edi
+ movl $-1,%edx
+ addl %eax,%edi
+ movl %ebp,%eax
+ roll $15,%edi
+ addl %esi,%edi
+
+ subl %ebp,%edx
+ andl %edi,%eax
+ andl %ebx,%edx
+ orl %eax,%edx
+ movl 48(%esp),%eax
+ roll $10,%ebx
+ leal 2400959708(%esi,%edx,1),%esi
+ movl $-1,%edx
+ addl %eax,%esi
+ movl %ebx,%eax
+ roll $9,%esi
+ addl %ecx,%esi
+
+ subl %ebx,%edx
+ andl %esi,%eax
+ andl %edi,%edx
+ orl %eax,%edx
+ movl 16(%esp),%eax
+ roll $10,%edi
+ leal 2400959708(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ addl %eax,%ecx
+ movl %edi,%eax
+ roll $8,%ecx
+ addl %ebp,%ecx
+
+ subl %edi,%edx
+ andl %ecx,%eax
+ andl %esi,%edx
+ orl %eax,%edx
+ movl 52(%esp),%eax
+ roll $10,%esi
+ leal 2400959708(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ addl %eax,%ebp
+ movl %esi,%eax
+ roll $9,%ebp
+ addl %ebx,%ebp
+
+ subl %esi,%edx
+ andl %ebp,%eax
+ andl %ecx,%edx
+ orl %eax,%edx
+ movl 12(%esp),%eax
+ roll $10,%ecx
+ leal 2400959708(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ addl %eax,%ebx
+ movl %ecx,%eax
+ roll $14,%ebx
+ addl %edi,%ebx
+
+ subl %ecx,%edx
+ andl %ebx,%eax
+ andl %ebp,%edx
+ orl %eax,%edx
+ movl 28(%esp),%eax
+ roll $10,%ebp
+ leal 2400959708(%edi,%edx,1),%edi
+ movl $-1,%edx
+ addl %eax,%edi
+ movl %ebp,%eax
+ roll $5,%edi
+ addl %esi,%edi
+
+ subl %ebp,%edx
+ andl %edi,%eax
+ andl %ebx,%edx
+ orl %eax,%edx
+ movl 60(%esp),%eax
+ roll $10,%ebx
+ leal 2400959708(%esi,%edx,1),%esi
+ movl $-1,%edx
+ addl %eax,%esi
+ movl %ebx,%eax
+ roll $6,%esi
+ addl %ecx,%esi
+
+ subl %ebx,%edx
+ andl %esi,%eax
+ andl %edi,%edx
+ orl %eax,%edx
+ movl 56(%esp),%eax
+ roll $10,%edi
+ leal 2400959708(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ addl %eax,%ecx
+ movl %edi,%eax
+ roll $8,%ecx
+ addl %ebp,%ecx
+
+ subl %edi,%edx
+ andl %ecx,%eax
+ andl %esi,%edx
+ orl %eax,%edx
+ movl 20(%esp),%eax
+ roll $10,%esi
+ leal 2400959708(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ addl %eax,%ebp
+ movl %esi,%eax
+ roll $6,%ebp
+ addl %ebx,%ebp
+
+ subl %esi,%edx
+ andl %ebp,%eax
+ andl %ecx,%edx
+ orl %eax,%edx
+ movl 24(%esp),%eax
+ roll $10,%ecx
+ leal 2400959708(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ addl %eax,%ebx
+ movl %ecx,%eax
+ roll $5,%ebx
+ addl %edi,%ebx
+
+ subl %ecx,%edx
+ andl %ebx,%eax
+ andl %ebp,%edx
+ orl %eax,%edx
+ movl 8(%esp),%eax
+ roll $10,%ebp
+ leal 2400959708(%edi,%edx,1),%edi
+ movl $-1,%edx
+ addl %eax,%edi
+ subl %ebp,%edx
+ roll $12,%edi
+ addl %esi,%edi
+
+ movl 16(%esp),%eax
+ orl %ebx,%edx
+ addl %eax,%esi
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 2840853838(%esi,%edx,1),%esi
+ subl %ebx,%eax
+ roll $9,%esi
+ addl %ecx,%esi
+
+ movl (%esp),%edx
+ orl %edi,%eax
+ addl %edx,%ecx
+ xorl %esi,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 2840853838(%ecx,%eax,1),%ecx
+ subl %edi,%edx
+ roll $15,%ecx
+ addl %ebp,%ecx
+
+ movl 20(%esp),%eax
+ orl %esi,%edx
+ addl %eax,%ebp
+ xorl %ecx,%edx
+ movl $-1,%eax
+ roll $10,%esi
+ leal 2840853838(%ebp,%edx,1),%ebp
+ subl %esi,%eax
+ roll $5,%ebp
+ addl %ebx,%ebp
+
+ movl 36(%esp),%edx
+ orl %ecx,%eax
+ addl %edx,%ebx
+ xorl %ebp,%eax
+ movl $-1,%edx
+ roll $10,%ecx
+ leal 2840853838(%ebx,%eax,1),%ebx
+ subl %ecx,%edx
+ roll $11,%ebx
+ addl %edi,%ebx
+
+ movl 28(%esp),%eax
+ orl %ebp,%edx
+ addl %eax,%edi
+ xorl %ebx,%edx
+ movl $-1,%eax
+ roll $10,%ebp
+ leal 2840853838(%edi,%edx,1),%edi
+ subl %ebp,%eax
+ roll $6,%edi
+ addl %esi,%edi
+
+ movl 48(%esp),%edx
+ orl %ebx,%eax
+ addl %edx,%esi
+ xorl %edi,%eax
+ movl $-1,%edx
+ roll $10,%ebx
+ leal 2840853838(%esi,%eax,1),%esi
+ subl %ebx,%edx
+ roll $8,%esi
+ addl %ecx,%esi
+
+ movl 8(%esp),%eax
+ orl %edi,%edx
+ addl %eax,%ecx
+ xorl %esi,%edx
+ movl $-1,%eax
+ roll $10,%edi
+ leal 2840853838(%ecx,%edx,1),%ecx
+ subl %edi,%eax
+ roll $13,%ecx
+ addl %ebp,%ecx
+
+ movl 40(%esp),%edx
+ orl %esi,%eax
+ addl %edx,%ebp
+ xorl %ecx,%eax
+ movl $-1,%edx
+ roll $10,%esi
+ leal 2840853838(%ebp,%eax,1),%ebp
+ subl %esi,%edx
+ roll $12,%ebp
+ addl %ebx,%ebp
+
+ movl 56(%esp),%eax
+ orl %ecx,%edx
+ addl %eax,%ebx
+ xorl %ebp,%edx
+ movl $-1,%eax
+ roll $10,%ecx
+ leal 2840853838(%ebx,%edx,1),%ebx
+ subl %ecx,%eax
+ roll $5,%ebx
+ addl %edi,%ebx
+
+ movl 4(%esp),%edx
+ orl %ebp,%eax
+ addl %edx,%edi
+ xorl %ebx,%eax
+ movl $-1,%edx
+ roll $10,%ebp
+ leal 2840853838(%edi,%eax,1),%edi
+ subl %ebp,%edx
+ roll $12,%edi
+ addl %esi,%edi
+
+ movl 12(%esp),%eax
+ orl %ebx,%edx
+ addl %eax,%esi
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 2840853838(%esi,%edx,1),%esi
+ subl %ebx,%eax
+ roll $13,%esi
+ addl %ecx,%esi
+
+ movl 32(%esp),%edx
+ orl %edi,%eax
+ addl %edx,%ecx
+ xorl %esi,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 2840853838(%ecx,%eax,1),%ecx
+ subl %edi,%edx
+ roll $14,%ecx
+ addl %ebp,%ecx
+
+ movl 44(%esp),%eax
+ orl %esi,%edx
+ addl %eax,%ebp
+ xorl %ecx,%edx
+ movl $-1,%eax
+ roll $10,%esi
+ leal 2840853838(%ebp,%edx,1),%ebp
+ subl %esi,%eax
+ roll $11,%ebp
+ addl %ebx,%ebp
+
+ movl 24(%esp),%edx
+ orl %ecx,%eax
+ addl %edx,%ebx
+ xorl %ebp,%eax
+ movl $-1,%edx
+ roll $10,%ecx
+ leal 2840853838(%ebx,%eax,1),%ebx
+ subl %ecx,%edx
+ roll $8,%ebx
+ addl %edi,%ebx
+
+ movl 60(%esp),%eax
+ orl %ebp,%edx
+ addl %eax,%edi
+ xorl %ebx,%edx
+ movl $-1,%eax
+ roll $10,%ebp
+ leal 2840853838(%edi,%edx,1),%edi
+ subl %ebp,%eax
+ roll $5,%edi
+ addl %esi,%edi
+
+ movl 52(%esp),%edx
+ orl %ebx,%eax
+ addl %edx,%esi
+ xorl %edi,%eax
+ movl 128(%esp),%edx
+ roll $10,%ebx
+ leal 2840853838(%esi,%eax,1),%esi
+ movl %ecx,64(%esp)
+ roll $6,%esi
+ addl %ecx,%esi
+ movl (%edx),%ecx
+ movl %esi,68(%esp)
+ movl %edi,72(%esp)
+ movl 4(%edx),%esi
+ movl %ebx,76(%esp)
+ movl 8(%edx),%edi
+ movl %ebp,80(%esp)
+ movl 12(%edx),%ebx
+ movl 16(%edx),%ebp
+
+ movl $-1,%edx
+ subl %ebx,%edx
+ movl 20(%esp),%eax
+ orl %edi,%edx
+ addl %eax,%ecx
+ xorl %esi,%edx
+ movl $-1,%eax
+ roll $10,%edi
+ leal 1352829926(%ecx,%edx,1),%ecx
+ subl %edi,%eax
+ roll $8,%ecx
+ addl %ebp,%ecx
+
+ movl 56(%esp),%edx
+ orl %esi,%eax
+ addl %edx,%ebp
+ xorl %ecx,%eax
+ movl $-1,%edx
+ roll $10,%esi
+ leal 1352829926(%ebp,%eax,1),%ebp
+ subl %esi,%edx
+ roll $9,%ebp
+ addl %ebx,%ebp
+
+ movl 28(%esp),%eax
+ orl %ecx,%edx
+ addl %eax,%ebx
+ xorl %ebp,%edx
+ movl $-1,%eax
+ roll $10,%ecx
+ leal 1352829926(%ebx,%edx,1),%ebx
+ subl %ecx,%eax
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ movl (%esp),%edx
+ orl %ebp,%eax
+ addl %edx,%edi
+ xorl %ebx,%eax
+ movl $-1,%edx
+ roll $10,%ebp
+ leal 1352829926(%edi,%eax,1),%edi
+ subl %ebp,%edx
+ roll $11,%edi
+ addl %esi,%edi
+
+ movl 36(%esp),%eax
+ orl %ebx,%edx
+ addl %eax,%esi
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 1352829926(%esi,%edx,1),%esi
+ subl %ebx,%eax
+ roll $13,%esi
+ addl %ecx,%esi
+
+ movl 8(%esp),%edx
+ orl %edi,%eax
+ addl %edx,%ecx
+ xorl %esi,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 1352829926(%ecx,%eax,1),%ecx
+ subl %edi,%edx
+ roll $15,%ecx
+ addl %ebp,%ecx
+
+ movl 44(%esp),%eax
+ orl %esi,%edx
+ addl %eax,%ebp
+ xorl %ecx,%edx
+ movl $-1,%eax
+ roll $10,%esi
+ leal 1352829926(%ebp,%edx,1),%ebp
+ subl %esi,%eax
+ roll $15,%ebp
+ addl %ebx,%ebp
+
+ movl 16(%esp),%edx
+ orl %ecx,%eax
+ addl %edx,%ebx
+ xorl %ebp,%eax
+ movl $-1,%edx
+ roll $10,%ecx
+ leal 1352829926(%ebx,%eax,1),%ebx
+ subl %ecx,%edx
+ roll $5,%ebx
+ addl %edi,%ebx
+
+ movl 52(%esp),%eax
+ orl %ebp,%edx
+ addl %eax,%edi
+ xorl %ebx,%edx
+ movl $-1,%eax
+ roll $10,%ebp
+ leal 1352829926(%edi,%edx,1),%edi
+ subl %ebp,%eax
+ roll $7,%edi
+ addl %esi,%edi
+
+ movl 24(%esp),%edx
+ orl %ebx,%eax
+ addl %edx,%esi
+ xorl %edi,%eax
+ movl $-1,%edx
+ roll $10,%ebx
+ leal 1352829926(%esi,%eax,1),%esi
+ subl %ebx,%edx
+ roll $7,%esi
+ addl %ecx,%esi
+
+ movl 60(%esp),%eax
+ orl %edi,%edx
+ addl %eax,%ecx
+ xorl %esi,%edx
+ movl $-1,%eax
+ roll $10,%edi
+ leal 1352829926(%ecx,%edx,1),%ecx
+ subl %edi,%eax
+ roll $8,%ecx
+ addl %ebp,%ecx
+
+ movl 32(%esp),%edx
+ orl %esi,%eax
+ addl %edx,%ebp
+ xorl %ecx,%eax
+ movl $-1,%edx
+ roll $10,%esi
+ leal 1352829926(%ebp,%eax,1),%ebp
+ subl %esi,%edx
+ roll $11,%ebp
+ addl %ebx,%ebp
+
+ movl 4(%esp),%eax
+ orl %ecx,%edx
+ addl %eax,%ebx
+ xorl %ebp,%edx
+ movl $-1,%eax
+ roll $10,%ecx
+ leal 1352829926(%ebx,%edx,1),%ebx
+ subl %ecx,%eax
+ roll $14,%ebx
+ addl %edi,%ebx
+
+ movl 40(%esp),%edx
+ orl %ebp,%eax
+ addl %edx,%edi
+ xorl %ebx,%eax
+ movl $-1,%edx
+ roll $10,%ebp
+ leal 1352829926(%edi,%eax,1),%edi
+ subl %ebp,%edx
+ roll $14,%edi
+ addl %esi,%edi
+
+ movl 12(%esp),%eax
+ orl %ebx,%edx
+ addl %eax,%esi
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 1352829926(%esi,%edx,1),%esi
+ subl %ebx,%eax
+ roll $12,%esi
+ addl %ecx,%esi
+
+ movl 48(%esp),%edx
+ orl %edi,%eax
+ addl %edx,%ecx
+ xorl %esi,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 1352829926(%ecx,%eax,1),%ecx
+ movl %edi,%eax
+ roll $6,%ecx
+ addl %ebp,%ecx
+
+ subl %edi,%edx
+ andl %ecx,%eax
+ andl %esi,%edx
+ orl %eax,%edx
+ movl 24(%esp),%eax
+ roll $10,%esi
+ leal 1548603684(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ addl %eax,%ebp
+ movl %esi,%eax
+ roll $9,%ebp
+ addl %ebx,%ebp
+
+ subl %esi,%edx
+ andl %ebp,%eax
+ andl %ecx,%edx
+ orl %eax,%edx
+ movl 44(%esp),%eax
+ roll $10,%ecx
+ leal 1548603684(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ addl %eax,%ebx
+ movl %ecx,%eax
+ roll $13,%ebx
+ addl %edi,%ebx
+
+ subl %ecx,%edx
+ andl %ebx,%eax
+ andl %ebp,%edx
+ orl %eax,%edx
+ movl 12(%esp),%eax
+ roll $10,%ebp
+ leal 1548603684(%edi,%edx,1),%edi
+ movl $-1,%edx
+ addl %eax,%edi
+ movl %ebp,%eax
+ roll $15,%edi
+ addl %esi,%edi
+
+ subl %ebp,%edx
+ andl %edi,%eax
+ andl %ebx,%edx
+ orl %eax,%edx
+ movl 28(%esp),%eax
+ roll $10,%ebx
+ leal 1548603684(%esi,%edx,1),%esi
+ movl $-1,%edx
+ addl %eax,%esi
+ movl %ebx,%eax
+ roll $7,%esi
+ addl %ecx,%esi
+
+ subl %ebx,%edx
+ andl %esi,%eax
+ andl %edi,%edx
+ orl %eax,%edx
+ movl (%esp),%eax
+ roll $10,%edi
+ leal 1548603684(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ addl %eax,%ecx
+ movl %edi,%eax
+ roll $12,%ecx
+ addl %ebp,%ecx
+
+ subl %edi,%edx
+ andl %ecx,%eax
+ andl %esi,%edx
+ orl %eax,%edx
+ movl 52(%esp),%eax
+ roll $10,%esi
+ leal 1548603684(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ addl %eax,%ebp
+ movl %esi,%eax
+ roll $8,%ebp
+ addl %ebx,%ebp
+
+ subl %esi,%edx
+ andl %ebp,%eax
+ andl %ecx,%edx
+ orl %eax,%edx
+ movl 20(%esp),%eax
+ roll $10,%ecx
+ leal 1548603684(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ addl %eax,%ebx
+ movl %ecx,%eax
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ subl %ecx,%edx
+ andl %ebx,%eax
+ andl %ebp,%edx
+ orl %eax,%edx
+ movl 40(%esp),%eax
+ roll $10,%ebp
+ leal 1548603684(%edi,%edx,1),%edi
+ movl $-1,%edx
+ addl %eax,%edi
+ movl %ebp,%eax
+ roll $11,%edi
+ addl %esi,%edi
+
+ subl %ebp,%edx
+ andl %edi,%eax
+ andl %ebx,%edx
+ orl %eax,%edx
+ movl 56(%esp),%eax
+ roll $10,%ebx
+ leal 1548603684(%esi,%edx,1),%esi
+ movl $-1,%edx
+ addl %eax,%esi
+ movl %ebx,%eax
+ roll $7,%esi
+ addl %ecx,%esi
+
+ subl %ebx,%edx
+ andl %esi,%eax
+ andl %edi,%edx
+ orl %eax,%edx
+ movl 60(%esp),%eax
+ roll $10,%edi
+ leal 1548603684(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ addl %eax,%ecx
+ movl %edi,%eax
+ roll $7,%ecx
+ addl %ebp,%ecx
+
+ subl %edi,%edx
+ andl %ecx,%eax
+ andl %esi,%edx
+ orl %eax,%edx
+ movl 32(%esp),%eax
+ roll $10,%esi
+ leal 1548603684(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ addl %eax,%ebp
+ movl %esi,%eax
+ roll $12,%ebp
+ addl %ebx,%ebp
+
+ subl %esi,%edx
+ andl %ebp,%eax
+ andl %ecx,%edx
+ orl %eax,%edx
+ movl 48(%esp),%eax
+ roll $10,%ecx
+ leal 1548603684(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ addl %eax,%ebx
+ movl %ecx,%eax
+ roll $7,%ebx
+ addl %edi,%ebx
+
+ subl %ecx,%edx
+ andl %ebx,%eax
+ andl %ebp,%edx
+ orl %eax,%edx
+ movl 16(%esp),%eax
+ roll $10,%ebp
+ leal 1548603684(%edi,%edx,1),%edi
+ movl $-1,%edx
+ addl %eax,%edi
+ movl %ebp,%eax
+ roll $6,%edi
+ addl %esi,%edi
+
+ subl %ebp,%edx
+ andl %edi,%eax
+ andl %ebx,%edx
+ orl %eax,%edx
+ movl 36(%esp),%eax
+ roll $10,%ebx
+ leal 1548603684(%esi,%edx,1),%esi
+ movl $-1,%edx
+ addl %eax,%esi
+ movl %ebx,%eax
+ roll $15,%esi
+ addl %ecx,%esi
+
+ subl %ebx,%edx
+ andl %esi,%eax
+ andl %edi,%edx
+ orl %eax,%edx
+ movl 4(%esp),%eax
+ roll $10,%edi
+ leal 1548603684(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ addl %eax,%ecx
+ movl %edi,%eax
+ roll $13,%ecx
+ addl %ebp,%ecx
+
+ subl %edi,%edx
+ andl %ecx,%eax
+ andl %esi,%edx
+ orl %eax,%edx
+ movl 8(%esp),%eax
+ roll $10,%esi
+ leal 1548603684(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ addl %eax,%ebp
+ subl %ecx,%edx
+ roll $11,%ebp
+ addl %ebx,%ebp
+
+ movl 60(%esp),%eax
+ orl %ebp,%edx
+ addl %eax,%ebx
+ xorl %esi,%edx
+ movl $-1,%eax
+ roll $10,%ecx
+ leal 1836072691(%ebx,%edx,1),%ebx
+ subl %ebp,%eax
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ movl 20(%esp),%edx
+ orl %ebx,%eax
+ addl %edx,%edi
+ xorl %ecx,%eax
+ movl $-1,%edx
+ roll $10,%ebp
+ leal 1836072691(%edi,%eax,1),%edi
+ subl %ebx,%edx
+ roll $7,%edi
+ addl %esi,%edi
+
+ movl 4(%esp),%eax
+ orl %edi,%edx
+ addl %eax,%esi
+ xorl %ebp,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 1836072691(%esi,%edx,1),%esi
+ subl %edi,%eax
+ roll $15,%esi
+ addl %ecx,%esi
+
+ movl 12(%esp),%edx
+ orl %esi,%eax
+ addl %edx,%ecx
+ xorl %ebx,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 1836072691(%ecx,%eax,1),%ecx
+ subl %esi,%edx
+ roll $11,%ecx
+ addl %ebp,%ecx
+
+ movl 28(%esp),%eax
+ orl %ecx,%edx
+ addl %eax,%ebp
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%esi
+ leal 1836072691(%ebp,%edx,1),%ebp
+ subl %ecx,%eax
+ roll $8,%ebp
+ addl %ebx,%ebp
+
+ movl 56(%esp),%edx
+ orl %ebp,%eax
+ addl %edx,%ebx
+ xorl %esi,%eax
+ movl $-1,%edx
+ roll $10,%ecx
+ leal 1836072691(%ebx,%eax,1),%ebx
+ subl %ebp,%edx
+ roll $6,%ebx
+ addl %edi,%ebx
+
+ movl 24(%esp),%eax
+ orl %ebx,%edx
+ addl %eax,%edi
+ xorl %ecx,%edx
+ movl $-1,%eax
+ roll $10,%ebp
+ leal 1836072691(%edi,%edx,1),%edi
+ subl %ebx,%eax
+ roll $6,%edi
+ addl %esi,%edi
+
+ movl 36(%esp),%edx
+ orl %edi,%eax
+ addl %edx,%esi
+ xorl %ebp,%eax
+ movl $-1,%edx
+ roll $10,%ebx
+ leal 1836072691(%esi,%eax,1),%esi
+ subl %edi,%edx
+ roll $14,%esi
+ addl %ecx,%esi
+
+ movl 44(%esp),%eax
+ orl %esi,%edx
+ addl %eax,%ecx
+ xorl %ebx,%edx
+ movl $-1,%eax
+ roll $10,%edi
+ leal 1836072691(%ecx,%edx,1),%ecx
+ subl %esi,%eax
+ roll $12,%ecx
+ addl %ebp,%ecx
+
+ movl 32(%esp),%edx
+ orl %ecx,%eax
+ addl %edx,%ebp
+ xorl %edi,%eax
+ movl $-1,%edx
+ roll $10,%esi
+ leal 1836072691(%ebp,%eax,1),%ebp
+ subl %ecx,%edx
+ roll $13,%ebp
+ addl %ebx,%ebp
+
+ movl 48(%esp),%eax
+ orl %ebp,%edx
+ addl %eax,%ebx
+ xorl %esi,%edx
+ movl $-1,%eax
+ roll $10,%ecx
+ leal 1836072691(%ebx,%edx,1),%ebx
+ subl %ebp,%eax
+ roll $5,%ebx
+ addl %edi,%ebx
+
+ movl 8(%esp),%edx
+ orl %ebx,%eax
+ addl %edx,%edi
+ xorl %ecx,%eax
+ movl $-1,%edx
+ roll $10,%ebp
+ leal 1836072691(%edi,%eax,1),%edi
+ subl %ebx,%edx
+ roll $14,%edi
+ addl %esi,%edi
+
+ movl 40(%esp),%eax
+ orl %edi,%edx
+ addl %eax,%esi
+ xorl %ebp,%edx
+ movl $-1,%eax
+ roll $10,%ebx
+ leal 1836072691(%esi,%edx,1),%esi
+ subl %edi,%eax
+ roll $13,%esi
+ addl %ecx,%esi
+
+ movl (%esp),%edx
+ orl %esi,%eax
+ addl %edx,%ecx
+ xorl %ebx,%eax
+ movl $-1,%edx
+ roll $10,%edi
+ leal 1836072691(%ecx,%eax,1),%ecx
+ subl %esi,%edx
+ roll $13,%ecx
+ addl %ebp,%ecx
+
+ movl 16(%esp),%eax
+ orl %ecx,%edx
+ addl %eax,%ebp
+ xorl %edi,%edx
+ movl $-1,%eax
+ roll $10,%esi
+ leal 1836072691(%ebp,%edx,1),%ebp
+ subl %ecx,%eax
+ roll $7,%ebp
+ addl %ebx,%ebp
+
+ movl 52(%esp),%edx
+ orl %ebp,%eax
+ addl %edx,%ebx
+ xorl %esi,%eax
+ movl 32(%esp),%edx
+ roll $10,%ecx
+ leal 1836072691(%ebx,%eax,1),%ebx
+ movl $-1,%eax
+ roll $5,%ebx
+ addl %edi,%ebx
+
+ addl %edx,%edi
+ movl %ebp,%edx
+ subl %ebx,%eax
+ andl %ebx,%edx
+ andl %ecx,%eax
+ orl %eax,%edx
+ movl 24(%esp),%eax
+ roll $10,%ebp
+ leal 2053994217(%edi,%edx,1),%edi
+ movl $-1,%edx
+ roll $15,%edi
+ addl %esi,%edi
+
+ addl %eax,%esi
+ movl %ebx,%eax
+ subl %edi,%edx
+ andl %edi,%eax
+ andl %ebp,%edx
+ orl %edx,%eax
+ movl 16(%esp),%edx
+ roll $10,%ebx
+ leal 2053994217(%esi,%eax,1),%esi
+ movl $-1,%eax
+ roll $5,%esi
+ addl %ecx,%esi
+
+ addl %edx,%ecx
+ movl %edi,%edx
+ subl %esi,%eax
+ andl %esi,%edx
+ andl %ebx,%eax
+ orl %eax,%edx
+ movl 4(%esp),%eax
+ roll $10,%edi
+ leal 2053994217(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ roll $8,%ecx
+ addl %ebp,%ecx
+
+ addl %eax,%ebp
+ movl %esi,%eax
+ subl %ecx,%edx
+ andl %ecx,%eax
+ andl %edi,%edx
+ orl %edx,%eax
+ movl 12(%esp),%edx
+ roll $10,%esi
+ leal 2053994217(%ebp,%eax,1),%ebp
+ movl $-1,%eax
+ roll $11,%ebp
+ addl %ebx,%ebp
+
+ addl %edx,%ebx
+ movl %ecx,%edx
+ subl %ebp,%eax
+ andl %ebp,%edx
+ andl %esi,%eax
+ orl %eax,%edx
+ movl 44(%esp),%eax
+ roll $10,%ecx
+ leal 2053994217(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ roll $14,%ebx
+ addl %edi,%ebx
+
+ addl %eax,%edi
+ movl %ebp,%eax
+ subl %ebx,%edx
+ andl %ebx,%eax
+ andl %ecx,%edx
+ orl %edx,%eax
+ movl 60(%esp),%edx
+ roll $10,%ebp
+ leal 2053994217(%edi,%eax,1),%edi
+ movl $-1,%eax
+ roll $14,%edi
+ addl %esi,%edi
+
+ addl %edx,%esi
+ movl %ebx,%edx
+ subl %edi,%eax
+ andl %edi,%edx
+ andl %ebp,%eax
+ orl %eax,%edx
+ movl (%esp),%eax
+ roll $10,%ebx
+ leal 2053994217(%esi,%edx,1),%esi
+ movl $-1,%edx
+ roll $6,%esi
+ addl %ecx,%esi
+
+ addl %eax,%ecx
+ movl %edi,%eax
+ subl %esi,%edx
+ andl %esi,%eax
+ andl %ebx,%edx
+ orl %edx,%eax
+ movl 20(%esp),%edx
+ roll $10,%edi
+ leal 2053994217(%ecx,%eax,1),%ecx
+ movl $-1,%eax
+ roll $14,%ecx
+ addl %ebp,%ecx
+
+ addl %edx,%ebp
+ movl %esi,%edx
+ subl %ecx,%eax
+ andl %ecx,%edx
+ andl %edi,%eax
+ orl %eax,%edx
+ movl 48(%esp),%eax
+ roll $10,%esi
+ leal 2053994217(%ebp,%edx,1),%ebp
+ movl $-1,%edx
+ roll $6,%ebp
+ addl %ebx,%ebp
+
+ addl %eax,%ebx
+ movl %ecx,%eax
+ subl %ebp,%edx
+ andl %ebp,%eax
+ andl %esi,%edx
+ orl %edx,%eax
+ movl 8(%esp),%edx
+ roll $10,%ecx
+ leal 2053994217(%ebx,%eax,1),%ebx
+ movl $-1,%eax
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ addl %edx,%edi
+ movl %ebp,%edx
+ subl %ebx,%eax
+ andl %ebx,%edx
+ andl %ecx,%eax
+ orl %eax,%edx
+ movl 52(%esp),%eax
+ roll $10,%ebp
+ leal 2053994217(%edi,%edx,1),%edi
+ movl $-1,%edx
+ roll $12,%edi
+ addl %esi,%edi
+
+ addl %eax,%esi
+ movl %ebx,%eax
+ subl %edi,%edx
+ andl %edi,%eax
+ andl %ebp,%edx
+ orl %edx,%eax
+ movl 36(%esp),%edx
+ roll $10,%ebx
+ leal 2053994217(%esi,%eax,1),%esi
+ movl $-1,%eax
+ roll $9,%esi
+ addl %ecx,%esi
+
+ addl %edx,%ecx
+ movl %edi,%edx
+ subl %esi,%eax
+ andl %esi,%edx
+ andl %ebx,%eax
+ orl %eax,%edx
+ movl 28(%esp),%eax
+ roll $10,%edi
+ leal 2053994217(%ecx,%edx,1),%ecx
+ movl $-1,%edx
+ roll $12,%ecx
+ addl %ebp,%ecx
+
+ addl %eax,%ebp
+ movl %esi,%eax
+ subl %ecx,%edx
+ andl %ecx,%eax
+ andl %edi,%edx
+ orl %edx,%eax
+ movl 40(%esp),%edx
+ roll $10,%esi
+ leal 2053994217(%ebp,%eax,1),%ebp
+ movl $-1,%eax
+ roll $5,%ebp
+ addl %ebx,%ebp
+
+ addl %edx,%ebx
+ movl %ecx,%edx
+ subl %ebp,%eax
+ andl %ebp,%edx
+ andl %esi,%eax
+ orl %eax,%edx
+ movl 56(%esp),%eax
+ roll $10,%ecx
+ leal 2053994217(%ebx,%edx,1),%ebx
+ movl $-1,%edx
+ roll $15,%ebx
+ addl %edi,%ebx
+
+ addl %eax,%edi
+ movl %ebp,%eax
+ subl %ebx,%edx
+ andl %ebx,%eax
+ andl %ecx,%edx
+ orl %eax,%edx
+ movl %ebx,%eax
+ roll $10,%ebp
+ leal 2053994217(%edi,%edx,1),%edi
+ xorl %ebp,%eax
+ roll $8,%edi
+ addl %esi,%edi
+
+ movl 48(%esp),%edx
+ xorl %edi,%eax
+ addl %edx,%esi
+ roll $10,%ebx
+ addl %eax,%esi
+ movl %edi,%eax
+ roll $8,%esi
+ addl %ecx,%esi
+
+ xorl %ebx,%eax
+ movl 60(%esp),%edx
+ xorl %esi,%eax
+ addl %eax,%ecx
+ movl %esi,%eax
+ roll $10,%edi
+ addl %edx,%ecx
+ xorl %edi,%eax
+ roll $5,%ecx
+ addl %ebp,%ecx
+
+ movl 40(%esp),%edx
+ xorl %ecx,%eax
+ addl %edx,%ebp
+ roll $10,%esi
+ addl %eax,%ebp
+ movl %ecx,%eax
+ roll $12,%ebp
+ addl %ebx,%ebp
+
+ xorl %esi,%eax
+ movl 16(%esp),%edx
+ xorl %ebp,%eax
+ addl %eax,%ebx
+ movl %ebp,%eax
+ roll $10,%ecx
+ addl %edx,%ebx
+ xorl %ecx,%eax
+ roll $9,%ebx
+ addl %edi,%ebx
+
+ movl 4(%esp),%edx
+ xorl %ebx,%eax
+ addl %edx,%edi
+ roll $10,%ebp
+ addl %eax,%edi
+ movl %ebx,%eax
+ roll $12,%edi
+ addl %esi,%edi
+
+ xorl %ebp,%eax
+ movl 20(%esp),%edx
+ xorl %edi,%eax
+ addl %eax,%esi
+ movl %edi,%eax
+ roll $10,%ebx
+ addl %edx,%esi
+ xorl %ebx,%eax
+ roll $5,%esi
+ addl %ecx,%esi
+
+ movl 32(%esp),%edx
+ xorl %esi,%eax
+ addl %edx,%ecx
+ roll $10,%edi
+ addl %eax,%ecx
+ movl %esi,%eax
+ roll $14,%ecx
+ addl %ebp,%ecx
+
+ xorl %edi,%eax
+ movl 28(%esp),%edx
+ xorl %ecx,%eax
+ addl %eax,%ebp
+ movl %ecx,%eax
+ roll $10,%esi
+ addl %edx,%ebp
+ xorl %esi,%eax
+ roll $6,%ebp
+ addl %ebx,%ebp
+
+ movl 24(%esp),%edx
+ xorl %ebp,%eax
+ addl %edx,%ebx
+ roll $10,%ecx
+ addl %eax,%ebx
+ movl %ebp,%eax
+ roll $8,%ebx
+ addl %edi,%ebx
+
+ xorl %ecx,%eax
+ movl 8(%esp),%edx
+ xorl %ebx,%eax
+ addl %eax,%edi
+ movl %ebx,%eax
+ roll $10,%ebp
+ addl %edx,%edi
+ xorl %ebp,%eax
+ roll $13,%edi
+ addl %esi,%edi
+
+ movl 52(%esp),%edx
+ xorl %edi,%eax
+ addl %edx,%esi
+ roll $10,%ebx
+ addl %eax,%esi
+ movl %edi,%eax
+ roll $6,%esi
+ addl %ecx,%esi
+
+ xorl %ebx,%eax
+ movl 56(%esp),%edx
+ xorl %esi,%eax
+ addl %eax,%ecx
+ movl %esi,%eax
+ roll $10,%edi
+ addl %edx,%ecx
+ xorl %edi,%eax
+ roll $5,%ecx
+ addl %ebp,%ecx
+
+ movl (%esp),%edx
+ xorl %ecx,%eax
+ addl %edx,%ebp
+ roll $10,%esi
+ addl %eax,%ebp
+ movl %ecx,%eax
+ roll $15,%ebp
+ addl %ebx,%ebp
+
+ xorl %esi,%eax
+ movl 12(%esp),%edx
+ xorl %ebp,%eax
+ addl %eax,%ebx
+ movl %ebp,%eax
+ roll $10,%ecx
+ addl %edx,%ebx
+ xorl %ecx,%eax
+ roll $13,%ebx
+ addl %edi,%ebx
+
+ movl 36(%esp),%edx
+ xorl %ebx,%eax
+ addl %edx,%edi
+ roll $10,%ebp
+ addl %eax,%edi
+ movl %ebx,%eax
+ roll $11,%edi
+ addl %esi,%edi
+
+ xorl %ebp,%eax
+ movl 44(%esp),%edx
+ xorl %edi,%eax
+ addl %eax,%esi
+ roll $10,%ebx
+ addl %edx,%esi
+ movl 128(%esp),%edx
+ roll $11,%esi
+ addl %ecx,%esi
+ movl 4(%edx),%eax
+ addl %eax,%ebx
+ movl 72(%esp),%eax
+ addl %eax,%ebx
+ movl 8(%edx),%eax
+ addl %eax,%ebp
+ movl 76(%esp),%eax
+ addl %eax,%ebp
+ movl 12(%edx),%eax
+ addl %eax,%ecx
+ movl 80(%esp),%eax
+ addl %eax,%ecx
+ movl 16(%edx),%eax
+ addl %eax,%esi
+ movl 64(%esp),%eax
+ addl %eax,%esi
+ movl (%edx),%eax
+ addl %eax,%edi
+ movl 68(%esp),%eax
+ addl %eax,%edi
+ movl 136(%esp),%eax
+ movl %ebx,(%edx)
+ movl %ebp,4(%edx)
+ movl %ecx,8(%edx)
+ subl $1,%eax
+ movl %esi,12(%edx)
+ movl %edi,16(%edx)
+ jle .L001get_out
+ movl %eax,136(%esp)
+ movl %ecx,%edi
+ movl 132(%esp),%eax
+ movl %ebx,%ecx
+ addl $64,%eax
+ movl %ebp,%esi
+ movl %eax,132(%esp)
+ jmp .L000start
+.L001get_out:
+ addl $108,%esp
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size ripemd160_block_asm_data_order,.-.L_ripemd160_block_asm_data_order_begin
diff --git a/lib/libcrypto/arch/i386/rmd_dgst_586.S b/lib/libcrypto/arch/i386/rmd_dgst_586.S
deleted file mode 100644
index 02a397eb272..00000000000
--- a/lib/libcrypto/arch/i386/rmd_dgst_586.S
+++ /dev/null
@@ -1,2024 +0,0 @@
-/* $NetBSD: rmd_dgst_586.S,v 1.1 2000/07/31 19:22:04 thorpej Exp $ */
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-/*
- * Modified from the output of `perl rmd-586.pl elf' by
- * Jason R. Thorpe <thorpej@zembu.com>.
- */
-
-#include <machine/asm.h>
-
-ENTRY(ripemd160_block_asm_host_order)
- movl 4(%esp), %edx
- movl 8(%esp), %eax
- pushl %esi
- movl (%edx), %ecx
- pushl %edi
- movl 4(%edx), %esi
- pushl %ebp
- movl 8(%edx), %edi
- pushl %ebx
- subl $108, %esp
-L000start:
-
- movl (%eax), %ebx
- movl 4(%eax), %ebp
- movl %ebx, (%esp)
- movl %ebp, 4(%esp)
- movl 8(%eax), %ebx
- movl 12(%eax), %ebp
- movl %ebx, 8(%esp)
- movl %ebp, 12(%esp)
- movl 16(%eax), %ebx
- movl 20(%eax), %ebp
- movl %ebx, 16(%esp)
- movl %ebp, 20(%esp)
- movl 24(%eax), %ebx
- movl 28(%eax), %ebp
- movl %ebx, 24(%esp)
- movl %ebp, 28(%esp)
- movl 32(%eax), %ebx
- movl 36(%eax), %ebp
- movl %ebx, 32(%esp)
- movl %ebp, 36(%esp)
- movl 40(%eax), %ebx
- movl 44(%eax), %ebp
- movl %ebx, 40(%esp)
- movl %ebp, 44(%esp)
- movl 48(%eax), %ebx
- movl 52(%eax), %ebp
- movl %ebx, 48(%esp)
- movl %ebp, 52(%esp)
- movl 56(%eax), %ebx
- movl 60(%eax), %ebp
- movl %ebx, 56(%esp)
- movl %ebp, 60(%esp)
- movl %edi, %eax
- movl 12(%edx), %ebx
- movl 16(%edx), %ebp
- /* 0 */
- xorl %ebx, %eax
- movl (%esp), %edx
- xorl %esi, %eax
- addl %edx, %ecx
- roll $10, %edi
- addl %eax, %ecx
- movl %esi, %eax
- roll $11, %ecx
- addl %ebp, %ecx
- /* 1 */
- xorl %edi, %eax
- movl 4(%esp), %edx
- xorl %ecx, %eax
- addl %eax, %ebp
- movl %ecx, %eax
- roll $10, %esi
- addl %edx, %ebp
- xorl %esi, %eax
- roll $14, %ebp
- addl %ebx, %ebp
- /* 2 */
- movl 8(%esp), %edx
- xorl %ebp, %eax
- addl %edx, %ebx
- roll $10, %ecx
- addl %eax, %ebx
- movl %ebp, %eax
- roll $15, %ebx
- addl %edi, %ebx
- /* 3 */
- xorl %ecx, %eax
- movl 12(%esp), %edx
- xorl %ebx, %eax
- addl %eax, %edi
- movl %ebx, %eax
- roll $10, %ebp
- addl %edx, %edi
- xorl %ebp, %eax
- roll $12, %edi
- addl %esi, %edi
- /* 4 */
- movl 16(%esp), %edx
- xorl %edi, %eax
- addl %edx, %esi
- roll $10, %ebx
- addl %eax, %esi
- movl %edi, %eax
- roll $5, %esi
- addl %ecx, %esi
- /* 5 */
- xorl %ebx, %eax
- movl 20(%esp), %edx
- xorl %esi, %eax
- addl %eax, %ecx
- movl %esi, %eax
- roll $10, %edi
- addl %edx, %ecx
- xorl %edi, %eax
- roll $8, %ecx
- addl %ebp, %ecx
- /* 6 */
- movl 24(%esp), %edx
- xorl %ecx, %eax
- addl %edx, %ebp
- roll $10, %esi
- addl %eax, %ebp
- movl %ecx, %eax
- roll $7, %ebp
- addl %ebx, %ebp
- /* 7 */
- xorl %esi, %eax
- movl 28(%esp), %edx
- xorl %ebp, %eax
- addl %eax, %ebx
- movl %ebp, %eax
- roll $10, %ecx
- addl %edx, %ebx
- xorl %ecx, %eax
- roll $9, %ebx
- addl %edi, %ebx
- /* 8 */
- movl 32(%esp), %edx
- xorl %ebx, %eax
- addl %edx, %edi
- roll $10, %ebp
- addl %eax, %edi
- movl %ebx, %eax
- roll $11, %edi
- addl %esi, %edi
- /* 9 */
- xorl %ebp, %eax
- movl 36(%esp), %edx
- xorl %edi, %eax
- addl %eax, %esi
- movl %edi, %eax
- roll $10, %ebx
- addl %edx, %esi
- xorl %ebx, %eax
- roll $13, %esi
- addl %ecx, %esi
- /* 10 */
- movl 40(%esp), %edx
- xorl %esi, %eax
- addl %edx, %ecx
- roll $10, %edi
- addl %eax, %ecx
- movl %esi, %eax
- roll $14, %ecx
- addl %ebp, %ecx
- /* 11 */
- xorl %edi, %eax
- movl 44(%esp), %edx
- xorl %ecx, %eax
- addl %eax, %ebp
- movl %ecx, %eax
- roll $10, %esi
- addl %edx, %ebp
- xorl %esi, %eax
- roll $15, %ebp
- addl %ebx, %ebp
- /* 12 */
- movl 48(%esp), %edx
- xorl %ebp, %eax
- addl %edx, %ebx
- roll $10, %ecx
- addl %eax, %ebx
- movl %ebp, %eax
- roll $6, %ebx
- addl %edi, %ebx
- /* 13 */
- xorl %ecx, %eax
- movl 52(%esp), %edx
- xorl %ebx, %eax
- addl %eax, %edi
- movl %ebx, %eax
- roll $10, %ebp
- addl %edx, %edi
- xorl %ebp, %eax
- roll $7, %edi
- addl %esi, %edi
- /* 14 */
- movl 56(%esp), %edx
- xorl %edi, %eax
- addl %edx, %esi
- roll $10, %ebx
- addl %eax, %esi
- movl %edi, %eax
- roll $9, %esi
- addl %ecx, %esi
- /* 15 */
- xorl %ebx, %eax
- movl 60(%esp), %edx
- xorl %esi, %eax
- addl %eax, %ecx
- movl $-1, %eax
- roll $10, %edi
- addl %edx, %ecx
- movl 28(%esp), %edx
- roll $8, %ecx
- addl %ebp, %ecx
- /* 16 */
- addl %edx, %ebp
- movl %esi, %edx
- subl %ecx, %eax
- andl %ecx, %edx
- andl %edi, %eax
- orl %eax, %edx
- movl 16(%esp), %eax
- roll $10, %esi
- leal 1518500249(%ebp,%edx,1),%ebp
- movl $-1, %edx
- roll $7, %ebp
- addl %ebx, %ebp
- /* 17 */
- addl %eax, %ebx
- movl %ecx, %eax
- subl %ebp, %edx
- andl %ebp, %eax
- andl %esi, %edx
- orl %edx, %eax
- movl 52(%esp), %edx
- roll $10, %ecx
- leal 1518500249(%ebx,%eax,1),%ebx
- movl $-1, %eax
- roll $6, %ebx
- addl %edi, %ebx
- /* 18 */
- addl %edx, %edi
- movl %ebp, %edx
- subl %ebx, %eax
- andl %ebx, %edx
- andl %ecx, %eax
- orl %eax, %edx
- movl 4(%esp), %eax
- roll $10, %ebp
- leal 1518500249(%edi,%edx,1),%edi
- movl $-1, %edx
- roll $8, %edi
- addl %esi, %edi
- /* 19 */
- addl %eax, %esi
- movl %ebx, %eax
- subl %edi, %edx
- andl %edi, %eax
- andl %ebp, %edx
- orl %edx, %eax
- movl 40(%esp), %edx
- roll $10, %ebx
- leal 1518500249(%esi,%eax,1),%esi
- movl $-1, %eax
- roll $13, %esi
- addl %ecx, %esi
- /* 20 */
- addl %edx, %ecx
- movl %edi, %edx
- subl %esi, %eax
- andl %esi, %edx
- andl %ebx, %eax
- orl %eax, %edx
- movl 24(%esp), %eax
- roll $10, %edi
- leal 1518500249(%ecx,%edx,1),%ecx
- movl $-1, %edx
- roll $11, %ecx
- addl %ebp, %ecx
- /* 21 */
- addl %eax, %ebp
- movl %esi, %eax
- subl %ecx, %edx
- andl %ecx, %eax
- andl %edi, %edx
- orl %edx, %eax
- movl 60(%esp), %edx
- roll $10, %esi
- leal 1518500249(%ebp,%eax,1),%ebp
- movl $-1, %eax
- roll $9, %ebp
- addl %ebx, %ebp
- /* 22 */
- addl %edx, %ebx
- movl %ecx, %edx
- subl %ebp, %eax
- andl %ebp, %edx
- andl %esi, %eax
- orl %eax, %edx
- movl 12(%esp), %eax
- roll $10, %ecx
- leal 1518500249(%ebx,%edx,1),%ebx
- movl $-1, %edx
- roll $7, %ebx
- addl %edi, %ebx
- /* 23 */
- addl %eax, %edi
- movl %ebp, %eax
- subl %ebx, %edx
- andl %ebx, %eax
- andl %ecx, %edx
- orl %edx, %eax
- movl 48(%esp), %edx
- roll $10, %ebp
- leal 1518500249(%edi,%eax,1),%edi
- movl $-1, %eax
- roll $15, %edi
- addl %esi, %edi
- /* 24 */
- addl %edx, %esi
- movl %ebx, %edx
- subl %edi, %eax
- andl %edi, %edx
- andl %ebp, %eax
- orl %eax, %edx
- movl (%esp), %eax
- roll $10, %ebx
- leal 1518500249(%esi,%edx,1),%esi
- movl $-1, %edx
- roll $7, %esi
- addl %ecx, %esi
- /* 25 */
- addl %eax, %ecx
- movl %edi, %eax
- subl %esi, %edx
- andl %esi, %eax
- andl %ebx, %edx
- orl %edx, %eax
- movl 36(%esp), %edx
- roll $10, %edi
- leal 1518500249(%ecx,%eax,1),%ecx
- movl $-1, %eax
- roll $12, %ecx
- addl %ebp, %ecx
- /* 26 */
- addl %edx, %ebp
- movl %esi, %edx
- subl %ecx, %eax
- andl %ecx, %edx
- andl %edi, %eax
- orl %eax, %edx
- movl 20(%esp), %eax
- roll $10, %esi
- leal 1518500249(%ebp,%edx,1),%ebp
- movl $-1, %edx
- roll $15, %ebp
- addl %ebx, %ebp
- /* 27 */
- addl %eax, %ebx
- movl %ecx, %eax
- subl %ebp, %edx
- andl %ebp, %eax
- andl %esi, %edx
- orl %edx, %eax
- movl 8(%esp), %edx
- roll $10, %ecx
- leal 1518500249(%ebx,%eax,1),%ebx
- movl $-1, %eax
- roll $9, %ebx
- addl %edi, %ebx
- /* 28 */
- addl %edx, %edi
- movl %ebp, %edx
- subl %ebx, %eax
- andl %ebx, %edx
- andl %ecx, %eax
- orl %eax, %edx
- movl 56(%esp), %eax
- roll $10, %ebp
- leal 1518500249(%edi,%edx,1),%edi
- movl $-1, %edx
- roll $11, %edi
- addl %esi, %edi
- /* 29 */
- addl %eax, %esi
- movl %ebx, %eax
- subl %edi, %edx
- andl %edi, %eax
- andl %ebp, %edx
- orl %edx, %eax
- movl 44(%esp), %edx
- roll $10, %ebx
- leal 1518500249(%esi,%eax,1),%esi
- movl $-1, %eax
- roll $7, %esi
- addl %ecx, %esi
- /* 30 */
- addl %edx, %ecx
- movl %edi, %edx
- subl %esi, %eax
- andl %esi, %edx
- andl %ebx, %eax
- orl %eax, %edx
- movl 32(%esp), %eax
- roll $10, %edi
- leal 1518500249(%ecx,%edx,1),%ecx
- movl $-1, %edx
- roll $13, %ecx
- addl %ebp, %ecx
- /* 31 */
- addl %eax, %ebp
- movl %esi, %eax
- subl %ecx, %edx
- andl %ecx, %eax
- andl %edi, %edx
- orl %edx, %eax
- movl $-1, %edx
- roll $10, %esi
- leal 1518500249(%ebp,%eax,1),%ebp
- subl %ecx, %edx
- roll $12, %ebp
- addl %ebx, %ebp
- /* 32 */
- movl 12(%esp), %eax
- orl %ebp, %edx
- addl %eax, %ebx
- xorl %esi, %edx
- movl $-1, %eax
- roll $10, %ecx
- leal 1859775393(%ebx,%edx,1),%ebx
- subl %ebp, %eax
- roll $11, %ebx
- addl %edi, %ebx
- /* 33 */
- movl 40(%esp), %edx
- orl %ebx, %eax
- addl %edx, %edi
- xorl %ecx, %eax
- movl $-1, %edx
- roll $10, %ebp
- leal 1859775393(%edi,%eax,1),%edi
- subl %ebx, %edx
- roll $13, %edi
- addl %esi, %edi
- /* 34 */
- movl 56(%esp), %eax
- orl %edi, %edx
- addl %eax, %esi
- xorl %ebp, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 1859775393(%esi,%edx,1),%esi
- subl %edi, %eax
- roll $6, %esi
- addl %ecx, %esi
- /* 35 */
- movl 16(%esp), %edx
- orl %esi, %eax
- addl %edx, %ecx
- xorl %ebx, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 1859775393(%ecx,%eax,1),%ecx
- subl %esi, %edx
- roll $7, %ecx
- addl %ebp, %ecx
- /* 36 */
- movl 36(%esp), %eax
- orl %ecx, %edx
- addl %eax, %ebp
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %esi
- leal 1859775393(%ebp,%edx,1),%ebp
- subl %ecx, %eax
- roll $14, %ebp
- addl %ebx, %ebp
- /* 37 */
- movl 60(%esp), %edx
- orl %ebp, %eax
- addl %edx, %ebx
- xorl %esi, %eax
- movl $-1, %edx
- roll $10, %ecx
- leal 1859775393(%ebx,%eax,1),%ebx
- subl %ebp, %edx
- roll $9, %ebx
- addl %edi, %ebx
- /* 38 */
- movl 32(%esp), %eax
- orl %ebx, %edx
- addl %eax, %edi
- xorl %ecx, %edx
- movl $-1, %eax
- roll $10, %ebp
- leal 1859775393(%edi,%edx,1),%edi
- subl %ebx, %eax
- roll $13, %edi
- addl %esi, %edi
- /* 39 */
- movl 4(%esp), %edx
- orl %edi, %eax
- addl %edx, %esi
- xorl %ebp, %eax
- movl $-1, %edx
- roll $10, %ebx
- leal 1859775393(%esi,%eax,1),%esi
- subl %edi, %edx
- roll $15, %esi
- addl %ecx, %esi
- /* 40 */
- movl 8(%esp), %eax
- orl %esi, %edx
- addl %eax, %ecx
- xorl %ebx, %edx
- movl $-1, %eax
- roll $10, %edi
- leal 1859775393(%ecx,%edx,1),%ecx
- subl %esi, %eax
- roll $14, %ecx
- addl %ebp, %ecx
- /* 41 */
- movl 28(%esp), %edx
- orl %ecx, %eax
- addl %edx, %ebp
- xorl %edi, %eax
- movl $-1, %edx
- roll $10, %esi
- leal 1859775393(%ebp,%eax,1),%ebp
- subl %ecx, %edx
- roll $8, %ebp
- addl %ebx, %ebp
- /* 42 */
- movl (%esp), %eax
- orl %ebp, %edx
- addl %eax, %ebx
- xorl %esi, %edx
- movl $-1, %eax
- roll $10, %ecx
- leal 1859775393(%ebx,%edx,1),%ebx
- subl %ebp, %eax
- roll $13, %ebx
- addl %edi, %ebx
- /* 43 */
- movl 24(%esp), %edx
- orl %ebx, %eax
- addl %edx, %edi
- xorl %ecx, %eax
- movl $-1, %edx
- roll $10, %ebp
- leal 1859775393(%edi,%eax,1),%edi
- subl %ebx, %edx
- roll $6, %edi
- addl %esi, %edi
- /* 44 */
- movl 52(%esp), %eax
- orl %edi, %edx
- addl %eax, %esi
- xorl %ebp, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 1859775393(%esi,%edx,1),%esi
- subl %edi, %eax
- roll $5, %esi
- addl %ecx, %esi
- /* 45 */
- movl 44(%esp), %edx
- orl %esi, %eax
- addl %edx, %ecx
- xorl %ebx, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 1859775393(%ecx,%eax,1),%ecx
- subl %esi, %edx
- roll $12, %ecx
- addl %ebp, %ecx
- /* 46 */
- movl 20(%esp), %eax
- orl %ecx, %edx
- addl %eax, %ebp
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %esi
- leal 1859775393(%ebp,%edx,1),%ebp
- subl %ecx, %eax
- roll $7, %ebp
- addl %ebx, %ebp
- /* 47 */
- movl 48(%esp), %edx
- orl %ebp, %eax
- addl %edx, %ebx
- xorl %esi, %eax
- movl $-1, %edx
- roll $10, %ecx
- leal 1859775393(%ebx,%eax,1),%ebx
- movl %ecx, %eax
- roll $5, %ebx
- addl %edi, %ebx
- /* 48 */
- subl %ecx, %edx
- andl %ebx, %eax
- andl %ebp, %edx
- orl %eax, %edx
- movl 4(%esp), %eax
- roll $10, %ebp
- leal 2400959708(%edi,%edx),%edi
- movl $-1, %edx
- addl %eax, %edi
- movl %ebp, %eax
- roll $11, %edi
- addl %esi, %edi
- /* 49 */
- subl %ebp, %edx
- andl %edi, %eax
- andl %ebx, %edx
- orl %eax, %edx
- movl 36(%esp), %eax
- roll $10, %ebx
- leal 2400959708(%esi,%edx),%esi
- movl $-1, %edx
- addl %eax, %esi
- movl %ebx, %eax
- roll $12, %esi
- addl %ecx, %esi
- /* 50 */
- subl %ebx, %edx
- andl %esi, %eax
- andl %edi, %edx
- orl %eax, %edx
- movl 44(%esp), %eax
- roll $10, %edi
- leal 2400959708(%ecx,%edx),%ecx
- movl $-1, %edx
- addl %eax, %ecx
- movl %edi, %eax
- roll $14, %ecx
- addl %ebp, %ecx
- /* 51 */
- subl %edi, %edx
- andl %ecx, %eax
- andl %esi, %edx
- orl %eax, %edx
- movl 40(%esp), %eax
- roll $10, %esi
- leal 2400959708(%ebp,%edx),%ebp
- movl $-1, %edx
- addl %eax, %ebp
- movl %esi, %eax
- roll $15, %ebp
- addl %ebx, %ebp
- /* 52 */
- subl %esi, %edx
- andl %ebp, %eax
- andl %ecx, %edx
- orl %eax, %edx
- movl (%esp), %eax
- roll $10, %ecx
- leal 2400959708(%ebx,%edx),%ebx
- movl $-1, %edx
- addl %eax, %ebx
- movl %ecx, %eax
- roll $14, %ebx
- addl %edi, %ebx
- /* 53 */
- subl %ecx, %edx
- andl %ebx, %eax
- andl %ebp, %edx
- orl %eax, %edx
- movl 32(%esp), %eax
- roll $10, %ebp
- leal 2400959708(%edi,%edx),%edi
- movl $-1, %edx
- addl %eax, %edi
- movl %ebp, %eax
- roll $15, %edi
- addl %esi, %edi
- /* 54 */
- subl %ebp, %edx
- andl %edi, %eax
- andl %ebx, %edx
- orl %eax, %edx
- movl 48(%esp), %eax
- roll $10, %ebx
- leal 2400959708(%esi,%edx),%esi
- movl $-1, %edx
- addl %eax, %esi
- movl %ebx, %eax
- roll $9, %esi
- addl %ecx, %esi
- /* 55 */
- subl %ebx, %edx
- andl %esi, %eax
- andl %edi, %edx
- orl %eax, %edx
- movl 16(%esp), %eax
- roll $10, %edi
- leal 2400959708(%ecx,%edx),%ecx
- movl $-1, %edx
- addl %eax, %ecx
- movl %edi, %eax
- roll $8, %ecx
- addl %ebp, %ecx
- /* 56 */
- subl %edi, %edx
- andl %ecx, %eax
- andl %esi, %edx
- orl %eax, %edx
- movl 52(%esp), %eax
- roll $10, %esi
- leal 2400959708(%ebp,%edx),%ebp
- movl $-1, %edx
- addl %eax, %ebp
- movl %esi, %eax
- roll $9, %ebp
- addl %ebx, %ebp
- /* 57 */
- subl %esi, %edx
- andl %ebp, %eax
- andl %ecx, %edx
- orl %eax, %edx
- movl 12(%esp), %eax
- roll $10, %ecx
- leal 2400959708(%ebx,%edx),%ebx
- movl $-1, %edx
- addl %eax, %ebx
- movl %ecx, %eax
- roll $14, %ebx
- addl %edi, %ebx
- /* 58 */
- subl %ecx, %edx
- andl %ebx, %eax
- andl %ebp, %edx
- orl %eax, %edx
- movl 28(%esp), %eax
- roll $10, %ebp
- leal 2400959708(%edi,%edx),%edi
- movl $-1, %edx
- addl %eax, %edi
- movl %ebp, %eax
- roll $5, %edi
- addl %esi, %edi
- /* 59 */
- subl %ebp, %edx
- andl %edi, %eax
- andl %ebx, %edx
- orl %eax, %edx
- movl 60(%esp), %eax
- roll $10, %ebx
- leal 2400959708(%esi,%edx),%esi
- movl $-1, %edx
- addl %eax, %esi
- movl %ebx, %eax
- roll $6, %esi
- addl %ecx, %esi
- /* 60 */
- subl %ebx, %edx
- andl %esi, %eax
- andl %edi, %edx
- orl %eax, %edx
- movl 56(%esp), %eax
- roll $10, %edi
- leal 2400959708(%ecx,%edx),%ecx
- movl $-1, %edx
- addl %eax, %ecx
- movl %edi, %eax
- roll $8, %ecx
- addl %ebp, %ecx
- /* 61 */
- subl %edi, %edx
- andl %ecx, %eax
- andl %esi, %edx
- orl %eax, %edx
- movl 20(%esp), %eax
- roll $10, %esi
- leal 2400959708(%ebp,%edx),%ebp
- movl $-1, %edx
- addl %eax, %ebp
- movl %esi, %eax
- roll $6, %ebp
- addl %ebx, %ebp
- /* 62 */
- subl %esi, %edx
- andl %ebp, %eax
- andl %ecx, %edx
- orl %eax, %edx
- movl 24(%esp), %eax
- roll $10, %ecx
- leal 2400959708(%ebx,%edx),%ebx
- movl $-1, %edx
- addl %eax, %ebx
- movl %ecx, %eax
- roll $5, %ebx
- addl %edi, %ebx
- /* 63 */
- subl %ecx, %edx
- andl %ebx, %eax
- andl %ebp, %edx
- orl %eax, %edx
- movl 8(%esp), %eax
- roll $10, %ebp
- leal 2400959708(%edi,%edx),%edi
- movl $-1, %edx
- addl %eax, %edi
- subl %ebp, %edx
- roll $12, %edi
- addl %esi, %edi
- /* 64 */
- movl 16(%esp), %eax
- orl %ebx, %edx
- addl %eax, %esi
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 2840853838(%esi,%edx,1),%esi
- subl %ebx, %eax
- roll $9, %esi
- addl %ecx, %esi
- /* 65 */
- movl (%esp), %edx
- orl %edi, %eax
- addl %edx, %ecx
- xorl %esi, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 2840853838(%ecx,%eax,1),%ecx
- subl %edi, %edx
- roll $15, %ecx
- addl %ebp, %ecx
- /* 66 */
- movl 20(%esp), %eax
- orl %esi, %edx
- addl %eax, %ebp
- xorl %ecx, %edx
- movl $-1, %eax
- roll $10, %esi
- leal 2840853838(%ebp,%edx,1),%ebp
- subl %esi, %eax
- roll $5, %ebp
- addl %ebx, %ebp
- /* 67 */
- movl 36(%esp), %edx
- orl %ecx, %eax
- addl %edx, %ebx
- xorl %ebp, %eax
- movl $-1, %edx
- roll $10, %ecx
- leal 2840853838(%ebx,%eax,1),%ebx
- subl %ecx, %edx
- roll $11, %ebx
- addl %edi, %ebx
- /* 68 */
- movl 28(%esp), %eax
- orl %ebp, %edx
- addl %eax, %edi
- xorl %ebx, %edx
- movl $-1, %eax
- roll $10, %ebp
- leal 2840853838(%edi,%edx,1),%edi
- subl %ebp, %eax
- roll $6, %edi
- addl %esi, %edi
- /* 69 */
- movl 48(%esp), %edx
- orl %ebx, %eax
- addl %edx, %esi
- xorl %edi, %eax
- movl $-1, %edx
- roll $10, %ebx
- leal 2840853838(%esi,%eax,1),%esi
- subl %ebx, %edx
- roll $8, %esi
- addl %ecx, %esi
- /* 70 */
- movl 8(%esp), %eax
- orl %edi, %edx
- addl %eax, %ecx
- xorl %esi, %edx
- movl $-1, %eax
- roll $10, %edi
- leal 2840853838(%ecx,%edx,1),%ecx
- subl %edi, %eax
- roll $13, %ecx
- addl %ebp, %ecx
- /* 71 */
- movl 40(%esp), %edx
- orl %esi, %eax
- addl %edx, %ebp
- xorl %ecx, %eax
- movl $-1, %edx
- roll $10, %esi
- leal 2840853838(%ebp,%eax,1),%ebp
- subl %esi, %edx
- roll $12, %ebp
- addl %ebx, %ebp
- /* 72 */
- movl 56(%esp), %eax
- orl %ecx, %edx
- addl %eax, %ebx
- xorl %ebp, %edx
- movl $-1, %eax
- roll $10, %ecx
- leal 2840853838(%ebx,%edx,1),%ebx
- subl %ecx, %eax
- roll $5, %ebx
- addl %edi, %ebx
- /* 73 */
- movl 4(%esp), %edx
- orl %ebp, %eax
- addl %edx, %edi
- xorl %ebx, %eax
- movl $-1, %edx
- roll $10, %ebp
- leal 2840853838(%edi,%eax,1),%edi
- subl %ebp, %edx
- roll $12, %edi
- addl %esi, %edi
- /* 74 */
- movl 12(%esp), %eax
- orl %ebx, %edx
- addl %eax, %esi
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 2840853838(%esi,%edx,1),%esi
- subl %ebx, %eax
- roll $13, %esi
- addl %ecx, %esi
- /* 75 */
- movl 32(%esp), %edx
- orl %edi, %eax
- addl %edx, %ecx
- xorl %esi, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 2840853838(%ecx,%eax,1),%ecx
- subl %edi, %edx
- roll $14, %ecx
- addl %ebp, %ecx
- /* 76 */
- movl 44(%esp), %eax
- orl %esi, %edx
- addl %eax, %ebp
- xorl %ecx, %edx
- movl $-1, %eax
- roll $10, %esi
- leal 2840853838(%ebp,%edx,1),%ebp
- subl %esi, %eax
- roll $11, %ebp
- addl %ebx, %ebp
- /* 77 */
- movl 24(%esp), %edx
- orl %ecx, %eax
- addl %edx, %ebx
- xorl %ebp, %eax
- movl $-1, %edx
- roll $10, %ecx
- leal 2840853838(%ebx,%eax,1),%ebx
- subl %ecx, %edx
- roll $8, %ebx
- addl %edi, %ebx
- /* 78 */
- movl 60(%esp), %eax
- orl %ebp, %edx
- addl %eax, %edi
- xorl %ebx, %edx
- movl $-1, %eax
- roll $10, %ebp
- leal 2840853838(%edi,%edx,1),%edi
- subl %ebp, %eax
- roll $5, %edi
- addl %esi, %edi
- /* 79 */
- movl 52(%esp), %edx
- orl %ebx, %eax
- addl %edx, %esi
- xorl %edi, %eax
- movl 128(%esp), %edx
- roll $10, %ebx
- leal 2840853838(%esi,%eax,1),%esi
- movl %ecx, 64(%esp)
- roll $6, %esi
- addl %ecx, %esi
- movl (%edx), %ecx
- movl %esi, 68(%esp)
- movl %edi, 72(%esp)
- movl 4(%edx), %esi
- movl %ebx, 76(%esp)
- movl 8(%edx), %edi
- movl %ebp, 80(%esp)
- movl 12(%edx), %ebx
- movl 16(%edx), %ebp
- /* 80 */
- movl $-1, %edx
- subl %ebx, %edx
- movl 20(%esp), %eax
- orl %edi, %edx
- addl %eax, %ecx
- xorl %esi, %edx
- movl $-1, %eax
- roll $10, %edi
- leal 1352829926(%ecx,%edx,1),%ecx
- subl %edi, %eax
- roll $8, %ecx
- addl %ebp, %ecx
- /* 81 */
- movl 56(%esp), %edx
- orl %esi, %eax
- addl %edx, %ebp
- xorl %ecx, %eax
- movl $-1, %edx
- roll $10, %esi
- leal 1352829926(%ebp,%eax,1),%ebp
- subl %esi, %edx
- roll $9, %ebp
- addl %ebx, %ebp
- /* 82 */
- movl 28(%esp), %eax
- orl %ecx, %edx
- addl %eax, %ebx
- xorl %ebp, %edx
- movl $-1, %eax
- roll $10, %ecx
- leal 1352829926(%ebx,%edx,1),%ebx
- subl %ecx, %eax
- roll $9, %ebx
- addl %edi, %ebx
- /* 83 */
- movl (%esp), %edx
- orl %ebp, %eax
- addl %edx, %edi
- xorl %ebx, %eax
- movl $-1, %edx
- roll $10, %ebp
- leal 1352829926(%edi,%eax,1),%edi
- subl %ebp, %edx
- roll $11, %edi
- addl %esi, %edi
- /* 84 */
- movl 36(%esp), %eax
- orl %ebx, %edx
- addl %eax, %esi
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 1352829926(%esi,%edx,1),%esi
- subl %ebx, %eax
- roll $13, %esi
- addl %ecx, %esi
- /* 85 */
- movl 8(%esp), %edx
- orl %edi, %eax
- addl %edx, %ecx
- xorl %esi, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 1352829926(%ecx,%eax,1),%ecx
- subl %edi, %edx
- roll $15, %ecx
- addl %ebp, %ecx
- /* 86 */
- movl 44(%esp), %eax
- orl %esi, %edx
- addl %eax, %ebp
- xorl %ecx, %edx
- movl $-1, %eax
- roll $10, %esi
- leal 1352829926(%ebp,%edx,1),%ebp
- subl %esi, %eax
- roll $15, %ebp
- addl %ebx, %ebp
- /* 87 */
- movl 16(%esp), %edx
- orl %ecx, %eax
- addl %edx, %ebx
- xorl %ebp, %eax
- movl $-1, %edx
- roll $10, %ecx
- leal 1352829926(%ebx,%eax,1),%ebx
- subl %ecx, %edx
- roll $5, %ebx
- addl %edi, %ebx
- /* 88 */
- movl 52(%esp), %eax
- orl %ebp, %edx
- addl %eax, %edi
- xorl %ebx, %edx
- movl $-1, %eax
- roll $10, %ebp
- leal 1352829926(%edi,%edx,1),%edi
- subl %ebp, %eax
- roll $7, %edi
- addl %esi, %edi
- /* 89 */
- movl 24(%esp), %edx
- orl %ebx, %eax
- addl %edx, %esi
- xorl %edi, %eax
- movl $-1, %edx
- roll $10, %ebx
- leal 1352829926(%esi,%eax,1),%esi
- subl %ebx, %edx
- roll $7, %esi
- addl %ecx, %esi
- /* 90 */
- movl 60(%esp), %eax
- orl %edi, %edx
- addl %eax, %ecx
- xorl %esi, %edx
- movl $-1, %eax
- roll $10, %edi
- leal 1352829926(%ecx,%edx,1),%ecx
- subl %edi, %eax
- roll $8, %ecx
- addl %ebp, %ecx
- /* 91 */
- movl 32(%esp), %edx
- orl %esi, %eax
- addl %edx, %ebp
- xorl %ecx, %eax
- movl $-1, %edx
- roll $10, %esi
- leal 1352829926(%ebp,%eax,1),%ebp
- subl %esi, %edx
- roll $11, %ebp
- addl %ebx, %ebp
- /* 92 */
- movl 4(%esp), %eax
- orl %ecx, %edx
- addl %eax, %ebx
- xorl %ebp, %edx
- movl $-1, %eax
- roll $10, %ecx
- leal 1352829926(%ebx,%edx,1),%ebx
- subl %ecx, %eax
- roll $14, %ebx
- addl %edi, %ebx
- /* 93 */
- movl 40(%esp), %edx
- orl %ebp, %eax
- addl %edx, %edi
- xorl %ebx, %eax
- movl $-1, %edx
- roll $10, %ebp
- leal 1352829926(%edi,%eax,1),%edi
- subl %ebp, %edx
- roll $14, %edi
- addl %esi, %edi
- /* 94 */
- movl 12(%esp), %eax
- orl %ebx, %edx
- addl %eax, %esi
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 1352829926(%esi,%edx,1),%esi
- subl %ebx, %eax
- roll $12, %esi
- addl %ecx, %esi
- /* 95 */
- movl 48(%esp), %edx
- orl %edi, %eax
- addl %edx, %ecx
- xorl %esi, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 1352829926(%ecx,%eax,1),%ecx
- movl %edi, %eax
- roll $6, %ecx
- addl %ebp, %ecx
- /* 96 */
- subl %edi, %edx
- andl %ecx, %eax
- andl %esi, %edx
- orl %eax, %edx
- movl 24(%esp), %eax
- roll $10, %esi
- leal 1548603684(%ebp,%edx),%ebp
- movl $-1, %edx
- addl %eax, %ebp
- movl %esi, %eax
- roll $9, %ebp
- addl %ebx, %ebp
- /* 97 */
- subl %esi, %edx
- andl %ebp, %eax
- andl %ecx, %edx
- orl %eax, %edx
- movl 44(%esp), %eax
- roll $10, %ecx
- leal 1548603684(%ebx,%edx),%ebx
- movl $-1, %edx
- addl %eax, %ebx
- movl %ecx, %eax
- roll $13, %ebx
- addl %edi, %ebx
- /* 98 */
- subl %ecx, %edx
- andl %ebx, %eax
- andl %ebp, %edx
- orl %eax, %edx
- movl 12(%esp), %eax
- roll $10, %ebp
- leal 1548603684(%edi,%edx),%edi
- movl $-1, %edx
- addl %eax, %edi
- movl %ebp, %eax
- roll $15, %edi
- addl %esi, %edi
- /* 99 */
- subl %ebp, %edx
- andl %edi, %eax
- andl %ebx, %edx
- orl %eax, %edx
- movl 28(%esp), %eax
- roll $10, %ebx
- leal 1548603684(%esi,%edx),%esi
- movl $-1, %edx
- addl %eax, %esi
- movl %ebx, %eax
- roll $7, %esi
- addl %ecx, %esi
- /* 100 */
- subl %ebx, %edx
- andl %esi, %eax
- andl %edi, %edx
- orl %eax, %edx
- movl (%esp), %eax
- roll $10, %edi
- leal 1548603684(%ecx,%edx),%ecx
- movl $-1, %edx
- addl %eax, %ecx
- movl %edi, %eax
- roll $12, %ecx
- addl %ebp, %ecx
- /* 101 */
- subl %edi, %edx
- andl %ecx, %eax
- andl %esi, %edx
- orl %eax, %edx
- movl 52(%esp), %eax
- roll $10, %esi
- leal 1548603684(%ebp,%edx),%ebp
- movl $-1, %edx
- addl %eax, %ebp
- movl %esi, %eax
- roll $8, %ebp
- addl %ebx, %ebp
- /* 102 */
- subl %esi, %edx
- andl %ebp, %eax
- andl %ecx, %edx
- orl %eax, %edx
- movl 20(%esp), %eax
- roll $10, %ecx
- leal 1548603684(%ebx,%edx),%ebx
- movl $-1, %edx
- addl %eax, %ebx
- movl %ecx, %eax
- roll $9, %ebx
- addl %edi, %ebx
- /* 103 */
- subl %ecx, %edx
- andl %ebx, %eax
- andl %ebp, %edx
- orl %eax, %edx
- movl 40(%esp), %eax
- roll $10, %ebp
- leal 1548603684(%edi,%edx),%edi
- movl $-1, %edx
- addl %eax, %edi
- movl %ebp, %eax
- roll $11, %edi
- addl %esi, %edi
- /* 104 */
- subl %ebp, %edx
- andl %edi, %eax
- andl %ebx, %edx
- orl %eax, %edx
- movl 56(%esp), %eax
- roll $10, %ebx
- leal 1548603684(%esi,%edx),%esi
- movl $-1, %edx
- addl %eax, %esi
- movl %ebx, %eax
- roll $7, %esi
- addl %ecx, %esi
- /* 105 */
- subl %ebx, %edx
- andl %esi, %eax
- andl %edi, %edx
- orl %eax, %edx
- movl 60(%esp), %eax
- roll $10, %edi
- leal 1548603684(%ecx,%edx),%ecx
- movl $-1, %edx
- addl %eax, %ecx
- movl %edi, %eax
- roll $7, %ecx
- addl %ebp, %ecx
- /* 106 */
- subl %edi, %edx
- andl %ecx, %eax
- andl %esi, %edx
- orl %eax, %edx
- movl 32(%esp), %eax
- roll $10, %esi
- leal 1548603684(%ebp,%edx),%ebp
- movl $-1, %edx
- addl %eax, %ebp
- movl %esi, %eax
- roll $12, %ebp
- addl %ebx, %ebp
- /* 107 */
- subl %esi, %edx
- andl %ebp, %eax
- andl %ecx, %edx
- orl %eax, %edx
- movl 48(%esp), %eax
- roll $10, %ecx
- leal 1548603684(%ebx,%edx),%ebx
- movl $-1, %edx
- addl %eax, %ebx
- movl %ecx, %eax
- roll $7, %ebx
- addl %edi, %ebx
- /* 108 */
- subl %ecx, %edx
- andl %ebx, %eax
- andl %ebp, %edx
- orl %eax, %edx
- movl 16(%esp), %eax
- roll $10, %ebp
- leal 1548603684(%edi,%edx),%edi
- movl $-1, %edx
- addl %eax, %edi
- movl %ebp, %eax
- roll $6, %edi
- addl %esi, %edi
- /* 109 */
- subl %ebp, %edx
- andl %edi, %eax
- andl %ebx, %edx
- orl %eax, %edx
- movl 36(%esp), %eax
- roll $10, %ebx
- leal 1548603684(%esi,%edx),%esi
- movl $-1, %edx
- addl %eax, %esi
- movl %ebx, %eax
- roll $15, %esi
- addl %ecx, %esi
- /* 110 */
- subl %ebx, %edx
- andl %esi, %eax
- andl %edi, %edx
- orl %eax, %edx
- movl 4(%esp), %eax
- roll $10, %edi
- leal 1548603684(%ecx,%edx),%ecx
- movl $-1, %edx
- addl %eax, %ecx
- movl %edi, %eax
- roll $13, %ecx
- addl %ebp, %ecx
- /* 111 */
- subl %edi, %edx
- andl %ecx, %eax
- andl %esi, %edx
- orl %eax, %edx
- movl 8(%esp), %eax
- roll $10, %esi
- leal 1548603684(%ebp,%edx),%ebp
- movl $-1, %edx
- addl %eax, %ebp
- subl %ecx, %edx
- roll $11, %ebp
- addl %ebx, %ebp
- /* 112 */
- movl 60(%esp), %eax
- orl %ebp, %edx
- addl %eax, %ebx
- xorl %esi, %edx
- movl $-1, %eax
- roll $10, %ecx
- leal 1836072691(%ebx,%edx,1),%ebx
- subl %ebp, %eax
- roll $9, %ebx
- addl %edi, %ebx
- /* 113 */
- movl 20(%esp), %edx
- orl %ebx, %eax
- addl %edx, %edi
- xorl %ecx, %eax
- movl $-1, %edx
- roll $10, %ebp
- leal 1836072691(%edi,%eax,1),%edi
- subl %ebx, %edx
- roll $7, %edi
- addl %esi, %edi
- /* 114 */
- movl 4(%esp), %eax
- orl %edi, %edx
- addl %eax, %esi
- xorl %ebp, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 1836072691(%esi,%edx,1),%esi
- subl %edi, %eax
- roll $15, %esi
- addl %ecx, %esi
- /* 115 */
- movl 12(%esp), %edx
- orl %esi, %eax
- addl %edx, %ecx
- xorl %ebx, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 1836072691(%ecx,%eax,1),%ecx
- subl %esi, %edx
- roll $11, %ecx
- addl %ebp, %ecx
- /* 116 */
- movl 28(%esp), %eax
- orl %ecx, %edx
- addl %eax, %ebp
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %esi
- leal 1836072691(%ebp,%edx,1),%ebp
- subl %ecx, %eax
- roll $8, %ebp
- addl %ebx, %ebp
- /* 117 */
- movl 56(%esp), %edx
- orl %ebp, %eax
- addl %edx, %ebx
- xorl %esi, %eax
- movl $-1, %edx
- roll $10, %ecx
- leal 1836072691(%ebx,%eax,1),%ebx
- subl %ebp, %edx
- roll $6, %ebx
- addl %edi, %ebx
- /* 118 */
- movl 24(%esp), %eax
- orl %ebx, %edx
- addl %eax, %edi
- xorl %ecx, %edx
- movl $-1, %eax
- roll $10, %ebp
- leal 1836072691(%edi,%edx,1),%edi
- subl %ebx, %eax
- roll $6, %edi
- addl %esi, %edi
- /* 119 */
- movl 36(%esp), %edx
- orl %edi, %eax
- addl %edx, %esi
- xorl %ebp, %eax
- movl $-1, %edx
- roll $10, %ebx
- leal 1836072691(%esi,%eax,1),%esi
- subl %edi, %edx
- roll $14, %esi
- addl %ecx, %esi
- /* 120 */
- movl 44(%esp), %eax
- orl %esi, %edx
- addl %eax, %ecx
- xorl %ebx, %edx
- movl $-1, %eax
- roll $10, %edi
- leal 1836072691(%ecx,%edx,1),%ecx
- subl %esi, %eax
- roll $12, %ecx
- addl %ebp, %ecx
- /* 121 */
- movl 32(%esp), %edx
- orl %ecx, %eax
- addl %edx, %ebp
- xorl %edi, %eax
- movl $-1, %edx
- roll $10, %esi
- leal 1836072691(%ebp,%eax,1),%ebp
- subl %ecx, %edx
- roll $13, %ebp
- addl %ebx, %ebp
- /* 122 */
- movl 48(%esp), %eax
- orl %ebp, %edx
- addl %eax, %ebx
- xorl %esi, %edx
- movl $-1, %eax
- roll $10, %ecx
- leal 1836072691(%ebx,%edx,1),%ebx
- subl %ebp, %eax
- roll $5, %ebx
- addl %edi, %ebx
- /* 123 */
- movl 8(%esp), %edx
- orl %ebx, %eax
- addl %edx, %edi
- xorl %ecx, %eax
- movl $-1, %edx
- roll $10, %ebp
- leal 1836072691(%edi,%eax,1),%edi
- subl %ebx, %edx
- roll $14, %edi
- addl %esi, %edi
- /* 124 */
- movl 40(%esp), %eax
- orl %edi, %edx
- addl %eax, %esi
- xorl %ebp, %edx
- movl $-1, %eax
- roll $10, %ebx
- leal 1836072691(%esi,%edx,1),%esi
- subl %edi, %eax
- roll $13, %esi
- addl %ecx, %esi
- /* 125 */
- movl (%esp), %edx
- orl %esi, %eax
- addl %edx, %ecx
- xorl %ebx, %eax
- movl $-1, %edx
- roll $10, %edi
- leal 1836072691(%ecx,%eax,1),%ecx
- subl %esi, %edx
- roll $13, %ecx
- addl %ebp, %ecx
- /* 126 */
- movl 16(%esp), %eax
- orl %ecx, %edx
- addl %eax, %ebp
- xorl %edi, %edx
- movl $-1, %eax
- roll $10, %esi
- leal 1836072691(%ebp,%edx,1),%ebp
- subl %ecx, %eax
- roll $7, %ebp
- addl %ebx, %ebp
- /* 127 */
- movl 52(%esp), %edx
- orl %ebp, %eax
- addl %edx, %ebx
- xorl %esi, %eax
- movl 32(%esp), %edx
- roll $10, %ecx
- leal 1836072691(%ebx,%eax,1),%ebx
- movl $-1, %eax
- roll $5, %ebx
- addl %edi, %ebx
- /* 128 */
- addl %edx, %edi
- movl %ebp, %edx
- subl %ebx, %eax
- andl %ebx, %edx
- andl %ecx, %eax
- orl %eax, %edx
- movl 24(%esp), %eax
- roll $10, %ebp
- leal 2053994217(%edi,%edx,1),%edi
- movl $-1, %edx
- roll $15, %edi
- addl %esi, %edi
- /* 129 */
- addl %eax, %esi
- movl %ebx, %eax
- subl %edi, %edx
- andl %edi, %eax
- andl %ebp, %edx
- orl %edx, %eax
- movl 16(%esp), %edx
- roll $10, %ebx
- leal 2053994217(%esi,%eax,1),%esi
- movl $-1, %eax
- roll $5, %esi
- addl %ecx, %esi
- /* 130 */
- addl %edx, %ecx
- movl %edi, %edx
- subl %esi, %eax
- andl %esi, %edx
- andl %ebx, %eax
- orl %eax, %edx
- movl 4(%esp), %eax
- roll $10, %edi
- leal 2053994217(%ecx,%edx,1),%ecx
- movl $-1, %edx
- roll $8, %ecx
- addl %ebp, %ecx
- /* 131 */
- addl %eax, %ebp
- movl %esi, %eax
- subl %ecx, %edx
- andl %ecx, %eax
- andl %edi, %edx
- orl %edx, %eax
- movl 12(%esp), %edx
- roll $10, %esi
- leal 2053994217(%ebp,%eax,1),%ebp
- movl $-1, %eax
- roll $11, %ebp
- addl %ebx, %ebp
- /* 132 */
- addl %edx, %ebx
- movl %ecx, %edx
- subl %ebp, %eax
- andl %ebp, %edx
- andl %esi, %eax
- orl %eax, %edx
- movl 44(%esp), %eax
- roll $10, %ecx
- leal 2053994217(%ebx,%edx,1),%ebx
- movl $-1, %edx
- roll $14, %ebx
- addl %edi, %ebx
- /* 133 */
- addl %eax, %edi
- movl %ebp, %eax
- subl %ebx, %edx
- andl %ebx, %eax
- andl %ecx, %edx
- orl %edx, %eax
- movl 60(%esp), %edx
- roll $10, %ebp
- leal 2053994217(%edi,%eax,1),%edi
- movl $-1, %eax
- roll $14, %edi
- addl %esi, %edi
- /* 134 */
- addl %edx, %esi
- movl %ebx, %edx
- subl %edi, %eax
- andl %edi, %edx
- andl %ebp, %eax
- orl %eax, %edx
- movl (%esp), %eax
- roll $10, %ebx
- leal 2053994217(%esi,%edx,1),%esi
- movl $-1, %edx
- roll $6, %esi
- addl %ecx, %esi
- /* 135 */
- addl %eax, %ecx
- movl %edi, %eax
- subl %esi, %edx
- andl %esi, %eax
- andl %ebx, %edx
- orl %edx, %eax
- movl 20(%esp), %edx
- roll $10, %edi
- leal 2053994217(%ecx,%eax,1),%ecx
- movl $-1, %eax
- roll $14, %ecx
- addl %ebp, %ecx
- /* 136 */
- addl %edx, %ebp
- movl %esi, %edx
- subl %ecx, %eax
- andl %ecx, %edx
- andl %edi, %eax
- orl %eax, %edx
- movl 48(%esp), %eax
- roll $10, %esi
- leal 2053994217(%ebp,%edx,1),%ebp
- movl $-1, %edx
- roll $6, %ebp
- addl %ebx, %ebp
- /* 137 */
- addl %eax, %ebx
- movl %ecx, %eax
- subl %ebp, %edx
- andl %ebp, %eax
- andl %esi, %edx
- orl %edx, %eax
- movl 8(%esp), %edx
- roll $10, %ecx
- leal 2053994217(%ebx,%eax,1),%ebx
- movl $-1, %eax
- roll $9, %ebx
- addl %edi, %ebx
- /* 138 */
- addl %edx, %edi
- movl %ebp, %edx
- subl %ebx, %eax
- andl %ebx, %edx
- andl %ecx, %eax
- orl %eax, %edx
- movl 52(%esp), %eax
- roll $10, %ebp
- leal 2053994217(%edi,%edx,1),%edi
- movl $-1, %edx
- roll $12, %edi
- addl %esi, %edi
- /* 139 */
- addl %eax, %esi
- movl %ebx, %eax
- subl %edi, %edx
- andl %edi, %eax
- andl %ebp, %edx
- orl %edx, %eax
- movl 36(%esp), %edx
- roll $10, %ebx
- leal 2053994217(%esi,%eax,1),%esi
- movl $-1, %eax
- roll $9, %esi
- addl %ecx, %esi
- /* 140 */
- addl %edx, %ecx
- movl %edi, %edx
- subl %esi, %eax
- andl %esi, %edx
- andl %ebx, %eax
- orl %eax, %edx
- movl 28(%esp), %eax
- roll $10, %edi
- leal 2053994217(%ecx,%edx,1),%ecx
- movl $-1, %edx
- roll $12, %ecx
- addl %ebp, %ecx
- /* 141 */
- addl %eax, %ebp
- movl %esi, %eax
- subl %ecx, %edx
- andl %ecx, %eax
- andl %edi, %edx
- orl %edx, %eax
- movl 40(%esp), %edx
- roll $10, %esi
- leal 2053994217(%ebp,%eax,1),%ebp
- movl $-1, %eax
- roll $5, %ebp
- addl %ebx, %ebp
- /* 142 */
- addl %edx, %ebx
- movl %ecx, %edx
- subl %ebp, %eax
- andl %ebp, %edx
- andl %esi, %eax
- orl %eax, %edx
- movl 56(%esp), %eax
- roll $10, %ecx
- leal 2053994217(%ebx,%edx,1),%ebx
- movl $-1, %edx
- roll $15, %ebx
- addl %edi, %ebx
- /* 143 */
- addl %eax, %edi
- movl %ebp, %eax
- subl %ebx, %edx
- andl %ebx, %eax
- andl %ecx, %edx
- orl %eax, %edx
- movl %ebx, %eax
- roll $10, %ebp
- leal 2053994217(%edi,%edx,1),%edi
- xorl %ebp, %eax
- roll $8, %edi
- addl %esi, %edi
- /* 144 */
- movl 48(%esp), %edx
- xorl %edi, %eax
- addl %edx, %esi
- roll $10, %ebx
- addl %eax, %esi
- movl %edi, %eax
- roll $8, %esi
- addl %ecx, %esi
- /* 145 */
- xorl %ebx, %eax
- movl 60(%esp), %edx
- xorl %esi, %eax
- addl %eax, %ecx
- movl %esi, %eax
- roll $10, %edi
- addl %edx, %ecx
- xorl %edi, %eax
- roll $5, %ecx
- addl %ebp, %ecx
- /* 146 */
- movl 40(%esp), %edx
- xorl %ecx, %eax
- addl %edx, %ebp
- roll $10, %esi
- addl %eax, %ebp
- movl %ecx, %eax
- roll $12, %ebp
- addl %ebx, %ebp
- /* 147 */
- xorl %esi, %eax
- movl 16(%esp), %edx
- xorl %ebp, %eax
- addl %eax, %ebx
- movl %ebp, %eax
- roll $10, %ecx
- addl %edx, %ebx
- xorl %ecx, %eax
- roll $9, %ebx
- addl %edi, %ebx
- /* 148 */
- movl 4(%esp), %edx
- xorl %ebx, %eax
- addl %edx, %edi
- roll $10, %ebp
- addl %eax, %edi
- movl %ebx, %eax
- roll $12, %edi
- addl %esi, %edi
- /* 149 */
- xorl %ebp, %eax
- movl 20(%esp), %edx
- xorl %edi, %eax
- addl %eax, %esi
- movl %edi, %eax
- roll $10, %ebx
- addl %edx, %esi
- xorl %ebx, %eax
- roll $5, %esi
- addl %ecx, %esi
- /* 150 */
- movl 32(%esp), %edx
- xorl %esi, %eax
- addl %edx, %ecx
- roll $10, %edi
- addl %eax, %ecx
- movl %esi, %eax
- roll $14, %ecx
- addl %ebp, %ecx
- /* 151 */
- xorl %edi, %eax
- movl 28(%esp), %edx
- xorl %ecx, %eax
- addl %eax, %ebp
- movl %ecx, %eax
- roll $10, %esi
- addl %edx, %ebp
- xorl %esi, %eax
- roll $6, %ebp
- addl %ebx, %ebp
- /* 152 */
- movl 24(%esp), %edx
- xorl %ebp, %eax
- addl %edx, %ebx
- roll $10, %ecx
- addl %eax, %ebx
- movl %ebp, %eax
- roll $8, %ebx
- addl %edi, %ebx
- /* 153 */
- xorl %ecx, %eax
- movl 8(%esp), %edx
- xorl %ebx, %eax
- addl %eax, %edi
- movl %ebx, %eax
- roll $10, %ebp
- addl %edx, %edi
- xorl %ebp, %eax
- roll $13, %edi
- addl %esi, %edi
- /* 154 */
- movl 52(%esp), %edx
- xorl %edi, %eax
- addl %edx, %esi
- roll $10, %ebx
- addl %eax, %esi
- movl %edi, %eax
- roll $6, %esi
- addl %ecx, %esi
- /* 155 */
- xorl %ebx, %eax
- movl 56(%esp), %edx
- xorl %esi, %eax
- addl %eax, %ecx
- movl %esi, %eax
- roll $10, %edi
- addl %edx, %ecx
- xorl %edi, %eax
- roll $5, %ecx
- addl %ebp, %ecx
- /* 156 */
- movl (%esp), %edx
- xorl %ecx, %eax
- addl %edx, %ebp
- roll $10, %esi
- addl %eax, %ebp
- movl %ecx, %eax
- roll $15, %ebp
- addl %ebx, %ebp
- /* 157 */
- xorl %esi, %eax
- movl 12(%esp), %edx
- xorl %ebp, %eax
- addl %eax, %ebx
- movl %ebp, %eax
- roll $10, %ecx
- addl %edx, %ebx
- xorl %ecx, %eax
- roll $13, %ebx
- addl %edi, %ebx
- /* 158 */
- movl 36(%esp), %edx
- xorl %ebx, %eax
- addl %edx, %edi
- roll $10, %ebp
- addl %eax, %edi
- movl %ebx, %eax
- roll $11, %edi
- addl %esi, %edi
- /* 159 */
- xorl %ebp, %eax
- movl 44(%esp), %edx
- xorl %edi, %eax
- addl %eax, %esi
- roll $10, %ebx
- addl %edx, %esi
- movl 128(%esp), %edx
- roll $11, %esi
- addl %ecx, %esi
- movl 4(%edx), %eax
- addl %eax, %ebx
- movl 72(%esp), %eax
- addl %eax, %ebx
- movl 8(%edx), %eax
- addl %eax, %ebp
- movl 76(%esp), %eax
- addl %eax, %ebp
- movl 12(%edx), %eax
- addl %eax, %ecx
- movl 80(%esp), %eax
- addl %eax, %ecx
- movl 16(%edx), %eax
- addl %eax, %esi
- movl 64(%esp), %eax
- addl %eax, %esi
- movl (%edx), %eax
- addl %eax, %edi
- movl 68(%esp), %eax
- addl %eax, %edi
- movl 136(%esp), %eax
- movl %ebx, (%edx)
- movl %ebp, 4(%edx)
- movl %ecx, 8(%edx)
- subl $1, %eax
- movl %esi, 12(%edx)
- movl %edi, 16(%edx)
- jle L001get_out
- movl %eax, 136(%esp)
- movl %ecx, %edi
- movl 132(%esp), %eax
- movl %ebx, %ecx
- addl $64, %eax
- movl %ebp, %esi
- movl %eax, 132(%esp)
- jmp L000start
-L001get_out:
- addl $108, %esp
- popl %ebx
- popl %ebp
- popl %edi
- popl %esi
- ret
diff --git a/lib/libcrypto/arch/i386/sha.inc b/lib/libcrypto/arch/i386/sha.inc
deleted file mode 100644
index a45a7c1b613..00000000000
--- a/lib/libcrypto/arch/i386/sha.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-# $NetBSD: sha.inc,v 1.3 2005/11/26 00:35:58 christos Exp $
-#
-# @(#) Copyright (c) 1995 Simon J. Gerraty
-#
-# SRCS extracted from /home/current/src/lib/libcrypto/../../crypto/dist/openssl/crypto/sha/Makefile.ssl
-#
-
-.PATH: ${OPENSSLSRC}/crypto/sha
-.PATH: ${.CURDIR}/arch/i386
-
-CPPFLAGS+= -I${OPENSSLSRC}/crypto/sha -DSHA1_ASM
-
-SRCS+=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c sha1_586.S sha256.c sha512.c
diff --git a/lib/libcrypto/arch/i386/sha1-586.S b/lib/libcrypto/arch/i386/sha1-586.S
new file mode 100644
index 00000000000..cccb1aba853
--- /dev/null
+++ b/lib/libcrypto/arch/i386/sha1-586.S
@@ -0,0 +1,1442 @@
+.file "sha1-586.s"
+.text
+.globl sha1_block_data_order
+.type sha1_block_data_order,@function
+.align 16
+sha1_block_data_order:
+.L_sha1_block_data_order_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 20(%esp),%ebp
+ movl 24(%esp),%esi
+ movl 28(%esp),%eax
+ subl $64,%esp
+ shll $6,%eax
+ addl %esi,%eax
+ movl %eax,92(%esp)
+ movl 16(%ebp),%edi
+.align 16
+.L000loop:
+ movl (%esi),%eax
+ movl 4(%esi),%ebx
+ movl 8(%esi),%ecx
+ movl 12(%esi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ movl %ecx,8(%esp)
+ movl %edx,12(%esp)
+ movl 16(%esi),%eax
+ movl 20(%esi),%ebx
+ movl 24(%esi),%ecx
+ movl 28(%esi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ movl %eax,16(%esp)
+ movl %ebx,20(%esp)
+ movl %ecx,24(%esp)
+ movl %edx,28(%esp)
+ movl 32(%esi),%eax
+ movl 36(%esi),%ebx
+ movl 40(%esi),%ecx
+ movl 44(%esi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ movl %eax,32(%esp)
+ movl %ebx,36(%esp)
+ movl %ecx,40(%esp)
+ movl %edx,44(%esp)
+ movl 48(%esi),%eax
+ movl 52(%esi),%ebx
+ movl 56(%esi),%ecx
+ movl 60(%esi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ movl %eax,48(%esp)
+ movl %ebx,52(%esp)
+ movl %ecx,56(%esp)
+ movl %edx,60(%esp)
+ movl %esi,88(%esp)
+ movl (%ebp),%eax
+ movl 4(%ebp),%ebx
+ movl 8(%ebp),%ecx
+ movl 12(%ebp),%edx
+
+ movl %ecx,%esi
+ movl %eax,%ebp
+ roll $5,%ebp
+ xorl %edx,%esi
+ addl %edi,%ebp
+ andl %ebx,%esi
+ movl (%esp),%edi
+ xorl %edx,%esi
+ rorl $2,%ebx
+ leal 1518500249(%ebp,%edi,1),%ebp
+ addl %esi,%ebp
+
+ movl %ebx,%edi
+ movl %ebp,%esi
+ roll $5,%ebp
+ xorl %ecx,%edi
+ addl %edx,%ebp
+ andl %eax,%edi
+ movl 4(%esp),%edx
+ xorl %ecx,%edi
+ rorl $2,%eax
+ leal 1518500249(%ebp,%edx,1),%ebp
+ addl %edi,%ebp
+
+ movl %eax,%edx
+ movl %ebp,%edi
+ roll $5,%ebp
+ xorl %ebx,%edx
+ addl %ecx,%ebp
+ andl %esi,%edx
+ movl 8(%esp),%ecx
+ xorl %ebx,%edx
+ rorl $2,%esi
+ leal 1518500249(%ebp,%ecx,1),%ebp
+ addl %edx,%ebp
+
+ movl %esi,%ecx
+ movl %ebp,%edx
+ roll $5,%ebp
+ xorl %eax,%ecx
+ addl %ebx,%ebp
+ andl %edi,%ecx
+ movl 12(%esp),%ebx
+ xorl %eax,%ecx
+ rorl $2,%edi
+ leal 1518500249(%ebp,%ebx,1),%ebp
+ addl %ecx,%ebp
+
+ movl %edi,%ebx
+ movl %ebp,%ecx
+ roll $5,%ebp
+ xorl %esi,%ebx
+ addl %eax,%ebp
+ andl %edx,%ebx
+ movl 16(%esp),%eax
+ xorl %esi,%ebx
+ rorl $2,%edx
+ leal 1518500249(%ebp,%eax,1),%ebp
+ addl %ebx,%ebp
+
+ movl %edx,%eax
+ movl %ebp,%ebx
+ roll $5,%ebp
+ xorl %edi,%eax
+ addl %esi,%ebp
+ andl %ecx,%eax
+ movl 20(%esp),%esi
+ xorl %edi,%eax
+ rorl $2,%ecx
+ leal 1518500249(%ebp,%esi,1),%ebp
+ addl %eax,%ebp
+
+ movl %ecx,%esi
+ movl %ebp,%eax
+ roll $5,%ebp
+ xorl %edx,%esi
+ addl %edi,%ebp
+ andl %ebx,%esi
+ movl 24(%esp),%edi
+ xorl %edx,%esi
+ rorl $2,%ebx
+ leal 1518500249(%ebp,%edi,1),%ebp
+ addl %esi,%ebp
+
+ movl %ebx,%edi
+ movl %ebp,%esi
+ roll $5,%ebp
+ xorl %ecx,%edi
+ addl %edx,%ebp
+ andl %eax,%edi
+ movl 28(%esp),%edx
+ xorl %ecx,%edi
+ rorl $2,%eax
+ leal 1518500249(%ebp,%edx,1),%ebp
+ addl %edi,%ebp
+
+ movl %eax,%edx
+ movl %ebp,%edi
+ roll $5,%ebp
+ xorl %ebx,%edx
+ addl %ecx,%ebp
+ andl %esi,%edx
+ movl 32(%esp),%ecx
+ xorl %ebx,%edx
+ rorl $2,%esi
+ leal 1518500249(%ebp,%ecx,1),%ebp
+ addl %edx,%ebp
+
+ movl %esi,%ecx
+ movl %ebp,%edx
+ roll $5,%ebp
+ xorl %eax,%ecx
+ addl %ebx,%ebp
+ andl %edi,%ecx
+ movl 36(%esp),%ebx
+ xorl %eax,%ecx
+ rorl $2,%edi
+ leal 1518500249(%ebp,%ebx,1),%ebp
+ addl %ecx,%ebp
+
+ movl %edi,%ebx
+ movl %ebp,%ecx
+ roll $5,%ebp
+ xorl %esi,%ebx
+ addl %eax,%ebp
+ andl %edx,%ebx
+ movl 40(%esp),%eax
+ xorl %esi,%ebx
+ rorl $2,%edx
+ leal 1518500249(%ebp,%eax,1),%ebp
+ addl %ebx,%ebp
+
+ movl %edx,%eax
+ movl %ebp,%ebx
+ roll $5,%ebp
+ xorl %edi,%eax
+ addl %esi,%ebp
+ andl %ecx,%eax
+ movl 44(%esp),%esi
+ xorl %edi,%eax
+ rorl $2,%ecx
+ leal 1518500249(%ebp,%esi,1),%ebp
+ addl %eax,%ebp
+
+ movl %ecx,%esi
+ movl %ebp,%eax
+ roll $5,%ebp
+ xorl %edx,%esi
+ addl %edi,%ebp
+ andl %ebx,%esi
+ movl 48(%esp),%edi
+ xorl %edx,%esi
+ rorl $2,%ebx
+ leal 1518500249(%ebp,%edi,1),%ebp
+ addl %esi,%ebp
+
+ movl %ebx,%edi
+ movl %ebp,%esi
+ roll $5,%ebp
+ xorl %ecx,%edi
+ addl %edx,%ebp
+ andl %eax,%edi
+ movl 52(%esp),%edx
+ xorl %ecx,%edi
+ rorl $2,%eax
+ leal 1518500249(%ebp,%edx,1),%ebp
+ addl %edi,%ebp
+
+ movl %eax,%edx
+ movl %ebp,%edi
+ roll $5,%ebp
+ xorl %ebx,%edx
+ addl %ecx,%ebp
+ andl %esi,%edx
+ movl 56(%esp),%ecx
+ xorl %ebx,%edx
+ rorl $2,%esi
+ leal 1518500249(%ebp,%ecx,1),%ebp
+ addl %edx,%ebp
+
+ movl %esi,%ecx
+ movl %ebp,%edx
+ roll $5,%ebp
+ xorl %eax,%ecx
+ addl %ebx,%ebp
+ andl %edi,%ecx
+ movl 60(%esp),%ebx
+ xorl %eax,%ecx
+ rorl $2,%edi
+ leal 1518500249(%ebp,%ebx,1),%ebp
+ addl %ebp,%ecx
+
+ movl (%esp),%ebx
+ movl %edi,%ebp
+ xorl 8(%esp),%ebx
+ xorl %esi,%ebp
+ xorl 32(%esp),%ebx
+ andl %edx,%ebp
+ rorl $2,%edx
+ xorl 52(%esp),%ebx
+ roll $1,%ebx
+ xorl %esi,%ebp
+ movl %ebx,(%esp)
+ leal 1518500249(%ebx,%eax,1),%ebx
+ movl %ecx,%eax
+ roll $5,%eax
+ addl %ebp,%ebx
+ addl %eax,%ebx
+
+ movl 4(%esp),%eax
+ movl %edx,%ebp
+ xorl 12(%esp),%eax
+ xorl %edi,%ebp
+ xorl 36(%esp),%eax
+ andl %ecx,%ebp
+ rorl $2,%ecx
+ xorl 56(%esp),%eax
+ roll $1,%eax
+ xorl %edi,%ebp
+ movl %eax,4(%esp)
+ leal 1518500249(%eax,%esi,1),%eax
+ movl %ebx,%esi
+ roll $5,%esi
+ addl %ebp,%eax
+ addl %esi,%eax
+
+ movl 8(%esp),%esi
+ movl %ecx,%ebp
+ xorl 16(%esp),%esi
+ xorl %edx,%ebp
+ xorl 40(%esp),%esi
+ andl %ebx,%ebp
+ rorl $2,%ebx
+ xorl 60(%esp),%esi
+ roll $1,%esi
+ xorl %edx,%ebp
+ movl %esi,8(%esp)
+ leal 1518500249(%esi,%edi,1),%esi
+ movl %eax,%edi
+ roll $5,%edi
+ addl %ebp,%esi
+ addl %edi,%esi
+
+ movl 12(%esp),%edi
+ movl %ebx,%ebp
+ xorl 20(%esp),%edi
+ xorl %ecx,%ebp
+ xorl 44(%esp),%edi
+ andl %eax,%ebp
+ rorl $2,%eax
+ xorl (%esp),%edi
+ roll $1,%edi
+ xorl %ecx,%ebp
+ movl %edi,12(%esp)
+ leal 1518500249(%edi,%edx,1),%edi
+ movl %esi,%edx
+ roll $5,%edx
+ addl %ebp,%edi
+ addl %edx,%edi
+
+ movl %esi,%ebp
+ movl 16(%esp),%edx
+ rorl $2,%esi
+ xorl 24(%esp),%edx
+ xorl %eax,%ebp
+ xorl 48(%esp),%edx
+ xorl %ebx,%ebp
+ xorl 4(%esp),%edx
+ roll $1,%edx
+ addl %ecx,%ebp
+ movl %edx,16(%esp)
+ movl %edi,%ecx
+ roll $5,%ecx
+ leal 1859775393(%edx,%ebp,1),%edx
+ addl %ecx,%edx
+
+ movl %edi,%ebp
+ movl 20(%esp),%ecx
+ rorl $2,%edi
+ xorl 28(%esp),%ecx
+ xorl %esi,%ebp
+ xorl 52(%esp),%ecx
+ xorl %eax,%ebp
+ xorl 8(%esp),%ecx
+ roll $1,%ecx
+ addl %ebx,%ebp
+ movl %ecx,20(%esp)
+ movl %edx,%ebx
+ roll $5,%ebx
+ leal 1859775393(%ecx,%ebp,1),%ecx
+ addl %ebx,%ecx
+
+ movl %edx,%ebp
+ movl 24(%esp),%ebx
+ rorl $2,%edx
+ xorl 32(%esp),%ebx
+ xorl %edi,%ebp
+ xorl 56(%esp),%ebx
+ xorl %esi,%ebp
+ xorl 12(%esp),%ebx
+ roll $1,%ebx
+ addl %eax,%ebp
+ movl %ebx,24(%esp)
+ movl %ecx,%eax
+ roll $5,%eax
+ leal 1859775393(%ebx,%ebp,1),%ebx
+ addl %eax,%ebx
+
+ movl %ecx,%ebp
+ movl 28(%esp),%eax
+ rorl $2,%ecx
+ xorl 36(%esp),%eax
+ xorl %edx,%ebp
+ xorl 60(%esp),%eax
+ xorl %edi,%ebp
+ xorl 16(%esp),%eax
+ roll $1,%eax
+ addl %esi,%ebp
+ movl %eax,28(%esp)
+ movl %ebx,%esi
+ roll $5,%esi
+ leal 1859775393(%eax,%ebp,1),%eax
+ addl %esi,%eax
+
+ movl %ebx,%ebp
+ movl 32(%esp),%esi
+ rorl $2,%ebx
+ xorl 40(%esp),%esi
+ xorl %ecx,%ebp
+ xorl (%esp),%esi
+ xorl %edx,%ebp
+ xorl 20(%esp),%esi
+ roll $1,%esi
+ addl %edi,%ebp
+ movl %esi,32(%esp)
+ movl %eax,%edi
+ roll $5,%edi
+ leal 1859775393(%esi,%ebp,1),%esi
+ addl %edi,%esi
+
+ movl %eax,%ebp
+ movl 36(%esp),%edi
+ rorl $2,%eax
+ xorl 44(%esp),%edi
+ xorl %ebx,%ebp
+ xorl 4(%esp),%edi
+ xorl %ecx,%ebp
+ xorl 24(%esp),%edi
+ roll $1,%edi
+ addl %edx,%ebp
+ movl %edi,36(%esp)
+ movl %esi,%edx
+ roll $5,%edx
+ leal 1859775393(%edi,%ebp,1),%edi
+ addl %edx,%edi
+
+ movl %esi,%ebp
+ movl 40(%esp),%edx
+ rorl $2,%esi
+ xorl 48(%esp),%edx
+ xorl %eax,%ebp
+ xorl 8(%esp),%edx
+ xorl %ebx,%ebp
+ xorl 28(%esp),%edx
+ roll $1,%edx
+ addl %ecx,%ebp
+ movl %edx,40(%esp)
+ movl %edi,%ecx
+ roll $5,%ecx
+ leal 1859775393(%edx,%ebp,1),%edx
+ addl %ecx,%edx
+
+ movl %edi,%ebp
+ movl 44(%esp),%ecx
+ rorl $2,%edi
+ xorl 52(%esp),%ecx
+ xorl %esi,%ebp
+ xorl 12(%esp),%ecx
+ xorl %eax,%ebp
+ xorl 32(%esp),%ecx
+ roll $1,%ecx
+ addl %ebx,%ebp
+ movl %ecx,44(%esp)
+ movl %edx,%ebx
+ roll $5,%ebx
+ leal 1859775393(%ecx,%ebp,1),%ecx
+ addl %ebx,%ecx
+
+ movl %edx,%ebp
+ movl 48(%esp),%ebx
+ rorl $2,%edx
+ xorl 56(%esp),%ebx
+ xorl %edi,%ebp
+ xorl 16(%esp),%ebx
+ xorl %esi,%ebp
+ xorl 36(%esp),%ebx
+ roll $1,%ebx
+ addl %eax,%ebp
+ movl %ebx,48(%esp)
+ movl %ecx,%eax
+ roll $5,%eax
+ leal 1859775393(%ebx,%ebp,1),%ebx
+ addl %eax,%ebx
+
+ movl %ecx,%ebp
+ movl 52(%esp),%eax
+ rorl $2,%ecx
+ xorl 60(%esp),%eax
+ xorl %edx,%ebp
+ xorl 20(%esp),%eax
+ xorl %edi,%ebp
+ xorl 40(%esp),%eax
+ roll $1,%eax
+ addl %esi,%ebp
+ movl %eax,52(%esp)
+ movl %ebx,%esi
+ roll $5,%esi
+ leal 1859775393(%eax,%ebp,1),%eax
+ addl %esi,%eax
+
+ movl %ebx,%ebp
+ movl 56(%esp),%esi
+ rorl $2,%ebx
+ xorl (%esp),%esi
+ xorl %ecx,%ebp
+ xorl 24(%esp),%esi
+ xorl %edx,%ebp
+ xorl 44(%esp),%esi
+ roll $1,%esi
+ addl %edi,%ebp
+ movl %esi,56(%esp)
+ movl %eax,%edi
+ roll $5,%edi
+ leal 1859775393(%esi,%ebp,1),%esi
+ addl %edi,%esi
+
+ movl %eax,%ebp
+ movl 60(%esp),%edi
+ rorl $2,%eax
+ xorl 4(%esp),%edi
+ xorl %ebx,%ebp
+ xorl 28(%esp),%edi
+ xorl %ecx,%ebp
+ xorl 48(%esp),%edi
+ roll $1,%edi
+ addl %edx,%ebp
+ movl %edi,60(%esp)
+ movl %esi,%edx
+ roll $5,%edx
+ leal 1859775393(%edi,%ebp,1),%edi
+ addl %edx,%edi
+
+ movl %esi,%ebp
+ movl (%esp),%edx
+ rorl $2,%esi
+ xorl 8(%esp),%edx
+ xorl %eax,%ebp
+ xorl 32(%esp),%edx
+ xorl %ebx,%ebp
+ xorl 52(%esp),%edx
+ roll $1,%edx
+ addl %ecx,%ebp
+ movl %edx,(%esp)
+ movl %edi,%ecx
+ roll $5,%ecx
+ leal 1859775393(%edx,%ebp,1),%edx
+ addl %ecx,%edx
+
+ movl %edi,%ebp
+ movl 4(%esp),%ecx
+ rorl $2,%edi
+ xorl 12(%esp),%ecx
+ xorl %esi,%ebp
+ xorl 36(%esp),%ecx
+ xorl %eax,%ebp
+ xorl 56(%esp),%ecx
+ roll $1,%ecx
+ addl %ebx,%ebp
+ movl %ecx,4(%esp)
+ movl %edx,%ebx
+ roll $5,%ebx
+ leal 1859775393(%ecx,%ebp,1),%ecx
+ addl %ebx,%ecx
+
+ movl %edx,%ebp
+ movl 8(%esp),%ebx
+ rorl $2,%edx
+ xorl 16(%esp),%ebx
+ xorl %edi,%ebp
+ xorl 40(%esp),%ebx
+ xorl %esi,%ebp
+ xorl 60(%esp),%ebx
+ roll $1,%ebx
+ addl %eax,%ebp
+ movl %ebx,8(%esp)
+ movl %ecx,%eax
+ roll $5,%eax
+ leal 1859775393(%ebx,%ebp,1),%ebx
+ addl %eax,%ebx
+
+ movl %ecx,%ebp
+ movl 12(%esp),%eax
+ rorl $2,%ecx
+ xorl 20(%esp),%eax
+ xorl %edx,%ebp
+ xorl 44(%esp),%eax
+ xorl %edi,%ebp
+ xorl (%esp),%eax
+ roll $1,%eax
+ addl %esi,%ebp
+ movl %eax,12(%esp)
+ movl %ebx,%esi
+ roll $5,%esi
+ leal 1859775393(%eax,%ebp,1),%eax
+ addl %esi,%eax
+
+ movl %ebx,%ebp
+ movl 16(%esp),%esi
+ rorl $2,%ebx
+ xorl 24(%esp),%esi
+ xorl %ecx,%ebp
+ xorl 48(%esp),%esi
+ xorl %edx,%ebp
+ xorl 4(%esp),%esi
+ roll $1,%esi
+ addl %edi,%ebp
+ movl %esi,16(%esp)
+ movl %eax,%edi
+ roll $5,%edi
+ leal 1859775393(%esi,%ebp,1),%esi
+ addl %edi,%esi
+
+ movl %eax,%ebp
+ movl 20(%esp),%edi
+ rorl $2,%eax
+ xorl 28(%esp),%edi
+ xorl %ebx,%ebp
+ xorl 52(%esp),%edi
+ xorl %ecx,%ebp
+ xorl 8(%esp),%edi
+ roll $1,%edi
+ addl %edx,%ebp
+ movl %edi,20(%esp)
+ movl %esi,%edx
+ roll $5,%edx
+ leal 1859775393(%edi,%ebp,1),%edi
+ addl %edx,%edi
+
+ movl %esi,%ebp
+ movl 24(%esp),%edx
+ rorl $2,%esi
+ xorl 32(%esp),%edx
+ xorl %eax,%ebp
+ xorl 56(%esp),%edx
+ xorl %ebx,%ebp
+ xorl 12(%esp),%edx
+ roll $1,%edx
+ addl %ecx,%ebp
+ movl %edx,24(%esp)
+ movl %edi,%ecx
+ roll $5,%ecx
+ leal 1859775393(%edx,%ebp,1),%edx
+ addl %ecx,%edx
+
+ movl %edi,%ebp
+ movl 28(%esp),%ecx
+ rorl $2,%edi
+ xorl 36(%esp),%ecx
+ xorl %esi,%ebp
+ xorl 60(%esp),%ecx
+ xorl %eax,%ebp
+ xorl 16(%esp),%ecx
+ roll $1,%ecx
+ addl %ebx,%ebp
+ movl %ecx,28(%esp)
+ movl %edx,%ebx
+ roll $5,%ebx
+ leal 1859775393(%ecx,%ebp,1),%ecx
+ addl %ebx,%ecx
+
+ movl 32(%esp),%ebx
+ movl 40(%esp),%ebp
+ xorl %ebp,%ebx
+ movl (%esp),%ebp
+ xorl %ebp,%ebx
+ movl 20(%esp),%ebp
+ xorl %ebp,%ebx
+ movl %edx,%ebp
+ roll $1,%ebx
+ orl %edi,%ebp
+ movl %ebx,32(%esp)
+ andl %esi,%ebp
+ leal 2400959708(%ebx,%eax,1),%ebx
+ movl %edx,%eax
+ rorl $2,%edx
+ andl %edi,%eax
+ orl %eax,%ebp
+ movl %ecx,%eax
+ roll $5,%eax
+ addl %ebp,%ebx
+ addl %eax,%ebx
+
+ movl 36(%esp),%eax
+ movl 44(%esp),%ebp
+ xorl %ebp,%eax
+ movl 4(%esp),%ebp
+ xorl %ebp,%eax
+ movl 24(%esp),%ebp
+ xorl %ebp,%eax
+ movl %ecx,%ebp
+ roll $1,%eax
+ orl %edx,%ebp
+ movl %eax,36(%esp)
+ andl %edi,%ebp
+ leal 2400959708(%eax,%esi,1),%eax
+ movl %ecx,%esi
+ rorl $2,%ecx
+ andl %edx,%esi
+ orl %esi,%ebp
+ movl %ebx,%esi
+ roll $5,%esi
+ addl %ebp,%eax
+ addl %esi,%eax
+
+ movl 40(%esp),%esi
+ movl 48(%esp),%ebp
+ xorl %ebp,%esi
+ movl 8(%esp),%ebp
+ xorl %ebp,%esi
+ movl 28(%esp),%ebp
+ xorl %ebp,%esi
+ movl %ebx,%ebp
+ roll $1,%esi
+ orl %ecx,%ebp
+ movl %esi,40(%esp)
+ andl %edx,%ebp
+ leal 2400959708(%esi,%edi,1),%esi
+ movl %ebx,%edi
+ rorl $2,%ebx
+ andl %ecx,%edi
+ orl %edi,%ebp
+ movl %eax,%edi
+ roll $5,%edi
+ addl %ebp,%esi
+ addl %edi,%esi
+
+ movl 44(%esp),%edi
+ movl 52(%esp),%ebp
+ xorl %ebp,%edi
+ movl 12(%esp),%ebp
+ xorl %ebp,%edi
+ movl 32(%esp),%ebp
+ xorl %ebp,%edi
+ movl %eax,%ebp
+ roll $1,%edi
+ orl %ebx,%ebp
+ movl %edi,44(%esp)
+ andl %ecx,%ebp
+ leal 2400959708(%edi,%edx,1),%edi
+ movl %eax,%edx
+ rorl $2,%eax
+ andl %ebx,%edx
+ orl %edx,%ebp
+ movl %esi,%edx
+ roll $5,%edx
+ addl %ebp,%edi
+ addl %edx,%edi
+
+ movl 48(%esp),%edx
+ movl 56(%esp),%ebp
+ xorl %ebp,%edx
+ movl 16(%esp),%ebp
+ xorl %ebp,%edx
+ movl 36(%esp),%ebp
+ xorl %ebp,%edx
+ movl %esi,%ebp
+ roll $1,%edx
+ orl %eax,%ebp
+ movl %edx,48(%esp)
+ andl %ebx,%ebp
+ leal 2400959708(%edx,%ecx,1),%edx
+ movl %esi,%ecx
+ rorl $2,%esi
+ andl %eax,%ecx
+ orl %ecx,%ebp
+ movl %edi,%ecx
+ roll $5,%ecx
+ addl %ebp,%edx
+ addl %ecx,%edx
+
+ movl 52(%esp),%ecx
+ movl 60(%esp),%ebp
+ xorl %ebp,%ecx
+ movl 20(%esp),%ebp
+ xorl %ebp,%ecx
+ movl 40(%esp),%ebp
+ xorl %ebp,%ecx
+ movl %edi,%ebp
+ roll $1,%ecx
+ orl %esi,%ebp
+ movl %ecx,52(%esp)
+ andl %eax,%ebp
+ leal 2400959708(%ecx,%ebx,1),%ecx
+ movl %edi,%ebx
+ rorl $2,%edi
+ andl %esi,%ebx
+ orl %ebx,%ebp
+ movl %edx,%ebx
+ roll $5,%ebx
+ addl %ebp,%ecx
+ addl %ebx,%ecx
+
+ movl 56(%esp),%ebx
+ movl (%esp),%ebp
+ xorl %ebp,%ebx
+ movl 24(%esp),%ebp
+ xorl %ebp,%ebx
+ movl 44(%esp),%ebp
+ xorl %ebp,%ebx
+ movl %edx,%ebp
+ roll $1,%ebx
+ orl %edi,%ebp
+ movl %ebx,56(%esp)
+ andl %esi,%ebp
+ leal 2400959708(%ebx,%eax,1),%ebx
+ movl %edx,%eax
+ rorl $2,%edx
+ andl %edi,%eax
+ orl %eax,%ebp
+ movl %ecx,%eax
+ roll $5,%eax
+ addl %ebp,%ebx
+ addl %eax,%ebx
+
+ movl 60(%esp),%eax
+ movl 4(%esp),%ebp
+ xorl %ebp,%eax
+ movl 28(%esp),%ebp
+ xorl %ebp,%eax
+ movl 48(%esp),%ebp
+ xorl %ebp,%eax
+ movl %ecx,%ebp
+ roll $1,%eax
+ orl %edx,%ebp
+ movl %eax,60(%esp)
+ andl %edi,%ebp
+ leal 2400959708(%eax,%esi,1),%eax
+ movl %ecx,%esi
+ rorl $2,%ecx
+ andl %edx,%esi
+ orl %esi,%ebp
+ movl %ebx,%esi
+ roll $5,%esi
+ addl %ebp,%eax
+ addl %esi,%eax
+
+ movl (%esp),%esi
+ movl 8(%esp),%ebp
+ xorl %ebp,%esi
+ movl 32(%esp),%ebp
+ xorl %ebp,%esi
+ movl 52(%esp),%ebp
+ xorl %ebp,%esi
+ movl %ebx,%ebp
+ roll $1,%esi
+ orl %ecx,%ebp
+ movl %esi,(%esp)
+ andl %edx,%ebp
+ leal 2400959708(%esi,%edi,1),%esi
+ movl %ebx,%edi
+ rorl $2,%ebx
+ andl %ecx,%edi
+ orl %edi,%ebp
+ movl %eax,%edi
+ roll $5,%edi
+ addl %ebp,%esi
+ addl %edi,%esi
+
+ movl 4(%esp),%edi
+ movl 12(%esp),%ebp
+ xorl %ebp,%edi
+ movl 36(%esp),%ebp
+ xorl %ebp,%edi
+ movl 56(%esp),%ebp
+ xorl %ebp,%edi
+ movl %eax,%ebp
+ roll $1,%edi
+ orl %ebx,%ebp
+ movl %edi,4(%esp)
+ andl %ecx,%ebp
+ leal 2400959708(%edi,%edx,1),%edi
+ movl %eax,%edx
+ rorl $2,%eax
+ andl %ebx,%edx
+ orl %edx,%ebp
+ movl %esi,%edx
+ roll $5,%edx
+ addl %ebp,%edi
+ addl %edx,%edi
+
+ movl 8(%esp),%edx
+ movl 16(%esp),%ebp
+ xorl %ebp,%edx
+ movl 40(%esp),%ebp
+ xorl %ebp,%edx
+ movl 60(%esp),%ebp
+ xorl %ebp,%edx
+ movl %esi,%ebp
+ roll $1,%edx
+ orl %eax,%ebp
+ movl %edx,8(%esp)
+ andl %ebx,%ebp
+ leal 2400959708(%edx,%ecx,1),%edx
+ movl %esi,%ecx
+ rorl $2,%esi
+ andl %eax,%ecx
+ orl %ecx,%ebp
+ movl %edi,%ecx
+ roll $5,%ecx
+ addl %ebp,%edx
+ addl %ecx,%edx
+
+ movl 12(%esp),%ecx
+ movl 20(%esp),%ebp
+ xorl %ebp,%ecx
+ movl 44(%esp),%ebp
+ xorl %ebp,%ecx
+ movl (%esp),%ebp
+ xorl %ebp,%ecx
+ movl %edi,%ebp
+ roll $1,%ecx
+ orl %esi,%ebp
+ movl %ecx,12(%esp)
+ andl %eax,%ebp
+ leal 2400959708(%ecx,%ebx,1),%ecx
+ movl %edi,%ebx
+ rorl $2,%edi
+ andl %esi,%ebx
+ orl %ebx,%ebp
+ movl %edx,%ebx
+ roll $5,%ebx
+ addl %ebp,%ecx
+ addl %ebx,%ecx
+
+ movl 16(%esp),%ebx
+ movl 24(%esp),%ebp
+ xorl %ebp,%ebx
+ movl 48(%esp),%ebp
+ xorl %ebp,%ebx
+ movl 4(%esp),%ebp
+ xorl %ebp,%ebx
+ movl %edx,%ebp
+ roll $1,%ebx
+ orl %edi,%ebp
+ movl %ebx,16(%esp)
+ andl %esi,%ebp
+ leal 2400959708(%ebx,%eax,1),%ebx
+ movl %edx,%eax
+ rorl $2,%edx
+ andl %edi,%eax
+ orl %eax,%ebp
+ movl %ecx,%eax
+ roll $5,%eax
+ addl %ebp,%ebx
+ addl %eax,%ebx
+
+ movl 20(%esp),%eax
+ movl 28(%esp),%ebp
+ xorl %ebp,%eax
+ movl 52(%esp),%ebp
+ xorl %ebp,%eax
+ movl 8(%esp),%ebp
+ xorl %ebp,%eax
+ movl %ecx,%ebp
+ roll $1,%eax
+ orl %edx,%ebp
+ movl %eax,20(%esp)
+ andl %edi,%ebp
+ leal 2400959708(%eax,%esi,1),%eax
+ movl %ecx,%esi
+ rorl $2,%ecx
+ andl %edx,%esi
+ orl %esi,%ebp
+ movl %ebx,%esi
+ roll $5,%esi
+ addl %ebp,%eax
+ addl %esi,%eax
+
+ movl 24(%esp),%esi
+ movl 32(%esp),%ebp
+ xorl %ebp,%esi
+ movl 56(%esp),%ebp
+ xorl %ebp,%esi
+ movl 12(%esp),%ebp
+ xorl %ebp,%esi
+ movl %ebx,%ebp
+ roll $1,%esi
+ orl %ecx,%ebp
+ movl %esi,24(%esp)
+ andl %edx,%ebp
+ leal 2400959708(%esi,%edi,1),%esi
+ movl %ebx,%edi
+ rorl $2,%ebx
+ andl %ecx,%edi
+ orl %edi,%ebp
+ movl %eax,%edi
+ roll $5,%edi
+ addl %ebp,%esi
+ addl %edi,%esi
+
+ movl 28(%esp),%edi
+ movl 36(%esp),%ebp
+ xorl %ebp,%edi
+ movl 60(%esp),%ebp
+ xorl %ebp,%edi
+ movl 16(%esp),%ebp
+ xorl %ebp,%edi
+ movl %eax,%ebp
+ roll $1,%edi
+ orl %ebx,%ebp
+ movl %edi,28(%esp)
+ andl %ecx,%ebp
+ leal 2400959708(%edi,%edx,1),%edi
+ movl %eax,%edx
+ rorl $2,%eax
+ andl %ebx,%edx
+ orl %edx,%ebp
+ movl %esi,%edx
+ roll $5,%edx
+ addl %ebp,%edi
+ addl %edx,%edi
+
+ movl 32(%esp),%edx
+ movl 40(%esp),%ebp
+ xorl %ebp,%edx
+ movl (%esp),%ebp
+ xorl %ebp,%edx
+ movl 20(%esp),%ebp
+ xorl %ebp,%edx
+ movl %esi,%ebp
+ roll $1,%edx
+ orl %eax,%ebp
+ movl %edx,32(%esp)
+ andl %ebx,%ebp
+ leal 2400959708(%edx,%ecx,1),%edx
+ movl %esi,%ecx
+ rorl $2,%esi
+ andl %eax,%ecx
+ orl %ecx,%ebp
+ movl %edi,%ecx
+ roll $5,%ecx
+ addl %ebp,%edx
+ addl %ecx,%edx
+
+ movl 36(%esp),%ecx
+ movl 44(%esp),%ebp
+ xorl %ebp,%ecx
+ movl 4(%esp),%ebp
+ xorl %ebp,%ecx
+ movl 24(%esp),%ebp
+ xorl %ebp,%ecx
+ movl %edi,%ebp
+ roll $1,%ecx
+ orl %esi,%ebp
+ movl %ecx,36(%esp)
+ andl %eax,%ebp
+ leal 2400959708(%ecx,%ebx,1),%ecx
+ movl %edi,%ebx
+ rorl $2,%edi
+ andl %esi,%ebx
+ orl %ebx,%ebp
+ movl %edx,%ebx
+ roll $5,%ebx
+ addl %ebp,%ecx
+ addl %ebx,%ecx
+
+ movl 40(%esp),%ebx
+ movl 48(%esp),%ebp
+ xorl %ebp,%ebx
+ movl 8(%esp),%ebp
+ xorl %ebp,%ebx
+ movl 28(%esp),%ebp
+ xorl %ebp,%ebx
+ movl %edx,%ebp
+ roll $1,%ebx
+ orl %edi,%ebp
+ movl %ebx,40(%esp)
+ andl %esi,%ebp
+ leal 2400959708(%ebx,%eax,1),%ebx
+ movl %edx,%eax
+ rorl $2,%edx
+ andl %edi,%eax
+ orl %eax,%ebp
+ movl %ecx,%eax
+ roll $5,%eax
+ addl %ebp,%ebx
+ addl %eax,%ebx
+
+ movl 44(%esp),%eax
+ movl 52(%esp),%ebp
+ xorl %ebp,%eax
+ movl 12(%esp),%ebp
+ xorl %ebp,%eax
+ movl 32(%esp),%ebp
+ xorl %ebp,%eax
+ movl %ecx,%ebp
+ roll $1,%eax
+ orl %edx,%ebp
+ movl %eax,44(%esp)
+ andl %edi,%ebp
+ leal 2400959708(%eax,%esi,1),%eax
+ movl %ecx,%esi
+ rorl $2,%ecx
+ andl %edx,%esi
+ orl %esi,%ebp
+ movl %ebx,%esi
+ roll $5,%esi
+ addl %ebp,%eax
+ addl %esi,%eax
+
+ movl %ebx,%ebp
+ movl 48(%esp),%esi
+ rorl $2,%ebx
+ xorl 56(%esp),%esi
+ xorl %ecx,%ebp
+ xorl 16(%esp),%esi
+ xorl %edx,%ebp
+ xorl 36(%esp),%esi
+ roll $1,%esi
+ addl %edi,%ebp
+ movl %esi,48(%esp)
+ movl %eax,%edi
+ roll $5,%edi
+ leal 3395469782(%esi,%ebp,1),%esi
+ addl %edi,%esi
+
+ movl %eax,%ebp
+ movl 52(%esp),%edi
+ rorl $2,%eax
+ xorl 60(%esp),%edi
+ xorl %ebx,%ebp
+ xorl 20(%esp),%edi
+ xorl %ecx,%ebp
+ xorl 40(%esp),%edi
+ roll $1,%edi
+ addl %edx,%ebp
+ movl %edi,52(%esp)
+ movl %esi,%edx
+ roll $5,%edx
+ leal 3395469782(%edi,%ebp,1),%edi
+ addl %edx,%edi
+
+ movl %esi,%ebp
+ movl 56(%esp),%edx
+ rorl $2,%esi
+ xorl (%esp),%edx
+ xorl %eax,%ebp
+ xorl 24(%esp),%edx
+ xorl %ebx,%ebp
+ xorl 44(%esp),%edx
+ roll $1,%edx
+ addl %ecx,%ebp
+ movl %edx,56(%esp)
+ movl %edi,%ecx
+ roll $5,%ecx
+ leal 3395469782(%edx,%ebp,1),%edx
+ addl %ecx,%edx
+
+ movl %edi,%ebp
+ movl 60(%esp),%ecx
+ rorl $2,%edi
+ xorl 4(%esp),%ecx
+ xorl %esi,%ebp
+ xorl 28(%esp),%ecx
+ xorl %eax,%ebp
+ xorl 48(%esp),%ecx
+ roll $1,%ecx
+ addl %ebx,%ebp
+ movl %ecx,60(%esp)
+ movl %edx,%ebx
+ roll $5,%ebx
+ leal 3395469782(%ecx,%ebp,1),%ecx
+ addl %ebx,%ecx
+
+ movl %edx,%ebp
+ movl (%esp),%ebx
+ rorl $2,%edx
+ xorl 8(%esp),%ebx
+ xorl %edi,%ebp
+ xorl 32(%esp),%ebx
+ xorl %esi,%ebp
+ xorl 52(%esp),%ebx
+ roll $1,%ebx
+ addl %eax,%ebp
+ movl %ebx,(%esp)
+ movl %ecx,%eax
+ roll $5,%eax
+ leal 3395469782(%ebx,%ebp,1),%ebx
+ addl %eax,%ebx
+
+ movl %ecx,%ebp
+ movl 4(%esp),%eax
+ rorl $2,%ecx
+ xorl 12(%esp),%eax
+ xorl %edx,%ebp
+ xorl 36(%esp),%eax
+ xorl %edi,%ebp
+ xorl 56(%esp),%eax
+ roll $1,%eax
+ addl %esi,%ebp
+ movl %eax,4(%esp)
+ movl %ebx,%esi
+ roll $5,%esi
+ leal 3395469782(%eax,%ebp,1),%eax
+ addl %esi,%eax
+
+ movl %ebx,%ebp
+ movl 8(%esp),%esi
+ rorl $2,%ebx
+ xorl 16(%esp),%esi
+ xorl %ecx,%ebp
+ xorl 40(%esp),%esi
+ xorl %edx,%ebp
+ xorl 60(%esp),%esi
+ roll $1,%esi
+ addl %edi,%ebp
+ movl %esi,8(%esp)
+ movl %eax,%edi
+ roll $5,%edi
+ leal 3395469782(%esi,%ebp,1),%esi
+ addl %edi,%esi
+
+ movl %eax,%ebp
+ movl 12(%esp),%edi
+ rorl $2,%eax
+ xorl 20(%esp),%edi
+ xorl %ebx,%ebp
+ xorl 44(%esp),%edi
+ xorl %ecx,%ebp
+ xorl (%esp),%edi
+ roll $1,%edi
+ addl %edx,%ebp
+ movl %edi,12(%esp)
+ movl %esi,%edx
+ roll $5,%edx
+ leal 3395469782(%edi,%ebp,1),%edi
+ addl %edx,%edi
+
+ movl %esi,%ebp
+ movl 16(%esp),%edx
+ rorl $2,%esi
+ xorl 24(%esp),%edx
+ xorl %eax,%ebp
+ xorl 48(%esp),%edx
+ xorl %ebx,%ebp
+ xorl 4(%esp),%edx
+ roll $1,%edx
+ addl %ecx,%ebp
+ movl %edx,16(%esp)
+ movl %edi,%ecx
+ roll $5,%ecx
+ leal 3395469782(%edx,%ebp,1),%edx
+ addl %ecx,%edx
+
+ movl %edi,%ebp
+ movl 20(%esp),%ecx
+ rorl $2,%edi
+ xorl 28(%esp),%ecx
+ xorl %esi,%ebp
+ xorl 52(%esp),%ecx
+ xorl %eax,%ebp
+ xorl 8(%esp),%ecx
+ roll $1,%ecx
+ addl %ebx,%ebp
+ movl %ecx,20(%esp)
+ movl %edx,%ebx
+ roll $5,%ebx
+ leal 3395469782(%ecx,%ebp,1),%ecx
+ addl %ebx,%ecx
+
+ movl %edx,%ebp
+ movl 24(%esp),%ebx
+ rorl $2,%edx
+ xorl 32(%esp),%ebx
+ xorl %edi,%ebp
+ xorl 56(%esp),%ebx
+ xorl %esi,%ebp
+ xorl 12(%esp),%ebx
+ roll $1,%ebx
+ addl %eax,%ebp
+ movl %ebx,24(%esp)
+ movl %ecx,%eax
+ roll $5,%eax
+ leal 3395469782(%ebx,%ebp,1),%ebx
+ addl %eax,%ebx
+
+ movl %ecx,%ebp
+ movl 28(%esp),%eax
+ rorl $2,%ecx
+ xorl 36(%esp),%eax
+ xorl %edx,%ebp
+ xorl 60(%esp),%eax
+ xorl %edi,%ebp
+ xorl 16(%esp),%eax
+ roll $1,%eax
+ addl %esi,%ebp
+ movl %eax,28(%esp)
+ movl %ebx,%esi
+ roll $5,%esi
+ leal 3395469782(%eax,%ebp,1),%eax
+ addl %esi,%eax
+
+ movl %ebx,%ebp
+ movl 32(%esp),%esi
+ rorl $2,%ebx
+ xorl 40(%esp),%esi
+ xorl %ecx,%ebp
+ xorl (%esp),%esi
+ xorl %edx,%ebp
+ xorl 20(%esp),%esi
+ roll $1,%esi
+ addl %edi,%ebp
+ movl %esi,32(%esp)
+ movl %eax,%edi
+ roll $5,%edi
+ leal 3395469782(%esi,%ebp,1),%esi
+ addl %edi,%esi
+
+ movl %eax,%ebp
+ movl 36(%esp),%edi
+ rorl $2,%eax
+ xorl 44(%esp),%edi
+ xorl %ebx,%ebp
+ xorl 4(%esp),%edi
+ xorl %ecx,%ebp
+ xorl 24(%esp),%edi
+ roll $1,%edi
+ addl %edx,%ebp
+ movl %edi,36(%esp)
+ movl %esi,%edx
+ roll $5,%edx
+ leal 3395469782(%edi,%ebp,1),%edi
+ addl %edx,%edi
+
+ movl %esi,%ebp
+ movl 40(%esp),%edx
+ rorl $2,%esi
+ xorl 48(%esp),%edx
+ xorl %eax,%ebp
+ xorl 8(%esp),%edx
+ xorl %ebx,%ebp
+ xorl 28(%esp),%edx
+ roll $1,%edx
+ addl %ecx,%ebp
+ movl %edx,40(%esp)
+ movl %edi,%ecx
+ roll $5,%ecx
+ leal 3395469782(%edx,%ebp,1),%edx
+ addl %ecx,%edx
+
+ movl %edi,%ebp
+ movl 44(%esp),%ecx
+ rorl $2,%edi
+ xorl 52(%esp),%ecx
+ xorl %esi,%ebp
+ xorl 12(%esp),%ecx
+ xorl %eax,%ebp
+ xorl 32(%esp),%ecx
+ roll $1,%ecx
+ addl %ebx,%ebp
+ movl %ecx,44(%esp)
+ movl %edx,%ebx
+ roll $5,%ebx
+ leal 3395469782(%ecx,%ebp,1),%ecx
+ addl %ebx,%ecx
+
+ movl %edx,%ebp
+ movl 48(%esp),%ebx
+ rorl $2,%edx
+ xorl 56(%esp),%ebx
+ xorl %edi,%ebp
+ xorl 16(%esp),%ebx
+ xorl %esi,%ebp
+ xorl 36(%esp),%ebx
+ roll $1,%ebx
+ addl %eax,%ebp
+ movl %ebx,48(%esp)
+ movl %ecx,%eax
+ roll $5,%eax
+ leal 3395469782(%ebx,%ebp,1),%ebx
+ addl %eax,%ebx
+
+ movl %ecx,%ebp
+ movl 52(%esp),%eax
+ rorl $2,%ecx
+ xorl 60(%esp),%eax
+ xorl %edx,%ebp
+ xorl 20(%esp),%eax
+ xorl %edi,%ebp
+ xorl 40(%esp),%eax
+ roll $1,%eax
+ addl %esi,%ebp
+ movl %eax,52(%esp)
+ movl %ebx,%esi
+ roll $5,%esi
+ leal 3395469782(%eax,%ebp,1),%eax
+ addl %esi,%eax
+
+ movl %ebx,%ebp
+ movl 56(%esp),%esi
+ rorl $2,%ebx
+ xorl (%esp),%esi
+ xorl %ecx,%ebp
+ xorl 24(%esp),%esi
+ xorl %edx,%ebp
+ xorl 44(%esp),%esi
+ roll $1,%esi
+ addl %edi,%ebp
+ movl %esi,56(%esp)
+ movl %eax,%edi
+ roll $5,%edi
+ leal 3395469782(%esi,%ebp,1),%esi
+ addl %edi,%esi
+
+ movl %eax,%ebp
+ movl 60(%esp),%edi
+ rorl $2,%eax
+ xorl 4(%esp),%edi
+ xorl %ebx,%ebp
+ xorl 28(%esp),%edi
+ xorl %ecx,%ebp
+ xorl 48(%esp),%edi
+ roll $1,%edi
+ addl %edx,%ebp
+ movl %edi,60(%esp)
+ movl %esi,%edx
+ roll $5,%edx
+ leal 3395469782(%edi,%ebp,1),%edi
+ addl %edx,%edi
+ movl 84(%esp),%ebp
+ movl 88(%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 92(%esp),%edx
+ movl %eax,8(%ebp)
+ movl %ecx,%edi
+ movl %ebx,12(%ebp)
+ movl %edx,%esi
+ movl %ecx,16(%ebp)
+ jb .L000loop
+ addl $64,%esp
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size sha1_block_data_order,.-.L_sha1_block_data_order_begin
+.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
+.byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82
+.byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112
+.byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/lib/libcrypto/arch/i386/sha1_586.S b/lib/libcrypto/arch/i386/sha1_586.S
deleted file mode 100644
index c8d7fb84f2e..00000000000
--- a/lib/libcrypto/arch/i386/sha1_586.S
+++ /dev/null
@@ -1,2036 +0,0 @@
-/* $NetBSD: sha1_586.S,v 1.2 2003/11/13 19:36:31 itojun Exp $ */
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-/*
- * Modified from the output of `perl sha1-586.pl elf' by
- * Markus Friedl <markus@openbsd.org> and
- * Jun-ichiro itojun Hagino <itojun@itojun.org>
- */
-
-#include <machine/asm.h>
-
-ENTRY(sha1_block_asm_data_order)
- movl 12(%esp), %ecx
- pushl %esi
- sall $6, %ecx
- movl 12(%esp), %esi
- pushl %ebp
- addl %esi, %ecx
- pushl %ebx
- movl 16(%esp), %ebp
- pushl %edi
- movl 12(%ebp), %edx
- subl $108, %esp
- movl 16(%ebp), %edi
- movl 8(%ebp), %ebx
- movl %ecx, 68(%esp)
- /* First we need to setup the X array */
-L000start:
- /* First, load the words onto the stack in network byte order */
- movl (%esi), %eax
- movl 4(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, (%esp)
- movl %ecx, 4(%esp)
- movl 8(%esi), %eax
- movl 12(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, 8(%esp)
- movl %ecx, 12(%esp)
- movl 16(%esi), %eax
- movl 20(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, 16(%esp)
- movl %ecx, 20(%esp)
- movl 24(%esi), %eax
- movl 28(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, 24(%esp)
- movl %ecx, 28(%esp)
- movl 32(%esi), %eax
- movl 36(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, 32(%esp)
- movl %ecx, 36(%esp)
- movl 40(%esi), %eax
- movl 44(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, 40(%esp)
- movl %ecx, 44(%esp)
- movl 48(%esi), %eax
- movl 52(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, 48(%esp)
- movl %ecx, 52(%esp)
- movl 56(%esi), %eax
- movl 60(%esi), %ecx
- /* bswapl eax */
- xchg %al, %ah
- rorl $16, %eax
- xchg %al, %ah
- /* bswapl ecx */
- xchg %cl, %ch
- rorl $16, %ecx
- xchg %cl, %ch
- movl %eax, 56(%esp)
- movl %ecx, 60(%esp)
- /* We now have the X array on the stack */
- /* starting at sp-4 */
- movl %esi, 132(%esp)
-L001shortcut:
-
- /* Start processing */
- movl (%ebp), %eax
- movl 4(%ebp), %ecx
- /* 00_15 0 */
- movl %ebx, %esi
- movl %eax, %ebp
- xorl %edx, %esi
- roll $5, %ebp
- andl %ecx, %esi
- addl %edi, %ebp
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- movl (%esp), %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- xorl %edx, %esi
- leal 1518500249(%ebp,%edi,1),%ebp
- movl %ecx, %edi
- addl %ebp, %esi
- xorl %ebx, %edi
- movl %esi, %ebp
- andl %eax, %edi
- roll $5, %ebp
- addl %edx, %ebp
- movl 4(%esp), %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- xorl %ebx, %edi
-.byte 209
-.byte 200 /* rorl $1 %eax */
- leal 1518500249(%ebp,%edx,1),%ebp
- addl %ebp, %edi
- /* 00_15 2 */
- movl %eax, %edx
- movl %edi, %ebp
- xorl %ecx, %edx
- roll $5, %ebp
- andl %esi, %edx
- addl %ebx, %ebp
-.byte 209
-.byte 206 /* rorl $1 %esi */
- movl 8(%esp), %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- xorl %ecx, %edx
- leal 1518500249(%ebp,%ebx,1),%ebp
- movl %esi, %ebx
- addl %ebp, %edx
- xorl %eax, %ebx
- movl %edx, %ebp
- andl %edi, %ebx
- roll $5, %ebp
- addl %ecx, %ebp
- movl 12(%esp), %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- xorl %eax, %ebx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- leal 1518500249(%ebp,%ecx,1),%ebp
- addl %ebp, %ebx
- /* 00_15 4 */
- movl %edi, %ecx
- movl %ebx, %ebp
- xorl %esi, %ecx
- roll $5, %ebp
- andl %edx, %ecx
- addl %eax, %ebp
-.byte 209
-.byte 202 /* rorl $1 %edx */
- movl 16(%esp), %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- xorl %esi, %ecx
- leal 1518500249(%ebp,%eax,1),%ebp
- movl %edx, %eax
- addl %ebp, %ecx
- xorl %edi, %eax
- movl %ecx, %ebp
- andl %ebx, %eax
- roll $5, %ebp
- addl %esi, %ebp
- movl 20(%esp), %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- xorl %edi, %eax
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- leal 1518500249(%ebp,%esi,1),%ebp
- addl %ebp, %eax
- /* 00_15 6 */
- movl %ebx, %esi
- movl %eax, %ebp
- xorl %edx, %esi
- roll $5, %ebp
- andl %ecx, %esi
- addl %edi, %ebp
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- movl 24(%esp), %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- xorl %edx, %esi
- leal 1518500249(%ebp,%edi,1),%ebp
- movl %ecx, %edi
- addl %ebp, %esi
- xorl %ebx, %edi
- movl %esi, %ebp
- andl %eax, %edi
- roll $5, %ebp
- addl %edx, %ebp
- movl 28(%esp), %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- xorl %ebx, %edi
-.byte 209
-.byte 200 /* rorl $1 %eax */
- leal 1518500249(%ebp,%edx,1),%ebp
- addl %ebp, %edi
- /* 00_15 8 */
- movl %eax, %edx
- movl %edi, %ebp
- xorl %ecx, %edx
- roll $5, %ebp
- andl %esi, %edx
- addl %ebx, %ebp
-.byte 209
-.byte 206 /* rorl $1 %esi */
- movl 32(%esp), %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- xorl %ecx, %edx
- leal 1518500249(%ebp,%ebx,1),%ebp
- movl %esi, %ebx
- addl %ebp, %edx
- xorl %eax, %ebx
- movl %edx, %ebp
- andl %edi, %ebx
- roll $5, %ebp
- addl %ecx, %ebp
- movl 36(%esp), %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- xorl %eax, %ebx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- leal 1518500249(%ebp,%ecx,1),%ebp
- addl %ebp, %ebx
- /* 00_15 10 */
- movl %edi, %ecx
- movl %ebx, %ebp
- xorl %esi, %ecx
- roll $5, %ebp
- andl %edx, %ecx
- addl %eax, %ebp
-.byte 209
-.byte 202 /* rorl $1 %edx */
- movl 40(%esp), %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- xorl %esi, %ecx
- leal 1518500249(%ebp,%eax,1),%ebp
- movl %edx, %eax
- addl %ebp, %ecx
- xorl %edi, %eax
- movl %ecx, %ebp
- andl %ebx, %eax
- roll $5, %ebp
- addl %esi, %ebp
- movl 44(%esp), %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- xorl %edi, %eax
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- leal 1518500249(%ebp,%esi,1),%ebp
- addl %ebp, %eax
- /* 00_15 12 */
- movl %ebx, %esi
- movl %eax, %ebp
- xorl %edx, %esi
- roll $5, %ebp
- andl %ecx, %esi
- addl %edi, %ebp
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- movl 48(%esp), %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- xorl %edx, %esi
- leal 1518500249(%ebp,%edi,1),%ebp
- movl %ecx, %edi
- addl %ebp, %esi
- xorl %ebx, %edi
- movl %esi, %ebp
- andl %eax, %edi
- roll $5, %ebp
- addl %edx, %ebp
- movl 52(%esp), %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- xorl %ebx, %edi
-.byte 209
-.byte 200 /* rorl $1 %eax */
- leal 1518500249(%ebp,%edx,1),%ebp
- addl %ebp, %edi
- /* 00_15 14 */
- movl %eax, %edx
- movl %edi, %ebp
- xorl %ecx, %edx
- roll $5, %ebp
- andl %esi, %edx
- addl %ebx, %ebp
-.byte 209
-.byte 206 /* rorl $1 %esi */
- movl 56(%esp), %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- xorl %ecx, %edx
- leal 1518500249(%ebp,%ebx,1),%ebp
- movl %esi, %ebx
- addl %ebp, %edx
- xorl %eax, %ebx
- movl %edx, %ebp
- andl %edi, %ebx
- roll $5, %ebp
- addl %ecx, %ebp
- movl 60(%esp), %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- xorl %eax, %ebx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- leal 1518500249(%ebp,%ecx,1),%ebp
- addl %ebp, %ebx
- /* 16_19 16 */
- nop
- movl (%esp), %ebp
- movl 8(%esp), %ecx
- xorl %ebp, %ecx
- movl 32(%esp), %ebp
- xorl %ebp, %ecx
- movl 52(%esp), %ebp
- xorl %ebp, %ecx
- movl %edi, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- xorl %esi, %ebp
- movl %ecx, (%esp)
- andl %edx, %ebp
- leal 1518500249(%ecx,%eax,1),%ecx
- xorl %esi, %ebp
- movl %ebx, %eax
- addl %ebp, %ecx
- roll $5, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %eax, %ecx
- movl 4(%esp), %eax
- movl 12(%esp), %ebp
- xorl %ebp, %eax
- movl 36(%esp), %ebp
- xorl %ebp, %eax
- movl 56(%esp), %ebp
-.byte 209
-.byte 202 /* rorl $1 %edx */
- xorl %ebp, %eax
-.byte 209
-.byte 192 /* roll $1 %eax */
- movl %edx, %ebp
- xorl %edi, %ebp
- movl %eax, 4(%esp)
- andl %ebx, %ebp
- leal 1518500249(%eax,%esi,1),%eax
- xorl %edi, %ebp
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %eax
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %eax
- /* 16_19 18 */
- movl 8(%esp), %ebp
- movl 16(%esp), %esi
- xorl %ebp, %esi
- movl 40(%esp), %ebp
- xorl %ebp, %esi
- movl 60(%esp), %ebp
- xorl %ebp, %esi
- movl %ebx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %edx, %ebp
- movl %esi, 8(%esp)
- andl %ecx, %ebp
- leal 1518500249(%esi,%edi,1),%esi
- xorl %edx, %ebp
- movl %eax, %edi
- addl %ebp, %esi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- movl 12(%esp), %edi
- movl 20(%esp), %ebp
- xorl %ebp, %edi
- movl 44(%esp), %ebp
- xorl %ebp, %edi
- movl (%esp), %ebp
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- xorl %ebp, %edi
-.byte 209
-.byte 199 /* roll $1 %edi */
- movl %ecx, %ebp
- xorl %ebx, %ebp
- movl %edi, 12(%esp)
- andl %eax, %ebp
- leal 1518500249(%edi,%edx,1),%edi
- xorl %ebx, %ebp
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edi
- /* 20_39 20 */
- movl 16(%esp), %edx
- movl 24(%esp), %ebp
- xorl %ebp, %edx
- movl 48(%esp), %ebp
- xorl %ebp, %edx
- movl 4(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- xorl %eax, %ebp
- movl %edx, 16(%esp)
- xorl %ecx, %ebp
- leal 1859775393(%edx,%ebx,1),%edx
- movl %edi, %ebx
- roll $5, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebp, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebx, %edx
- /* 20_39 21 */
- movl 20(%esp), %ebx
- movl 28(%esp), %ebp
- xorl %ebp, %ebx
- movl 52(%esp), %ebp
- xorl %ebp, %ebx
- movl 8(%esp), %ebp
- xorl %ebp, %ebx
- movl %edi, %ebp
-.byte 209
-.byte 195 /* roll $1 %ebx */
- xorl %esi, %ebp
- movl %ebx, 20(%esp)
- xorl %eax, %ebp
- leal 1859775393(%ebx,%ecx,1),%ebx
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebx
- /* 20_39 22 */
- movl 24(%esp), %ecx
- movl 32(%esp), %ebp
- xorl %ebp, %ecx
- movl 56(%esp), %ebp
- xorl %ebp, %ecx
- movl 12(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- xorl %edi, %ebp
- movl %ecx, 24(%esp)
- xorl %esi, %ebp
- leal 1859775393(%ecx,%eax,1),%ecx
- movl %ebx, %eax
- roll $5, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %ebp, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %eax, %ecx
- /* 20_39 23 */
- movl 28(%esp), %eax
- movl 36(%esp), %ebp
- xorl %ebp, %eax
- movl 60(%esp), %ebp
- xorl %ebp, %eax
- movl 16(%esp), %ebp
- xorl %ebp, %eax
- movl %ebx, %ebp
-.byte 209
-.byte 192 /* roll $1 %eax */
- xorl %edx, %ebp
- movl %eax, 28(%esp)
- xorl %edi, %ebp
- leal 1859775393(%eax,%esi,1),%eax
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %eax
- /* 20_39 24 */
- movl 32(%esp), %esi
- movl 40(%esp), %ebp
- xorl %ebp, %esi
- movl (%esp), %ebp
- xorl %ebp, %esi
- movl 20(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %ebx, %ebp
- movl %esi, 32(%esp)
- xorl %edx, %ebp
- leal 1859775393(%esi,%edi,1),%esi
- movl %eax, %edi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %ebp, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- /* 20_39 25 */
- movl 36(%esp), %edi
- movl 44(%esp), %ebp
- xorl %ebp, %edi
- movl 4(%esp), %ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
- xorl %ebp, %edi
- movl %eax, %ebp
-.byte 209
-.byte 199 /* roll $1 %edi */
- xorl %ecx, %ebp
- movl %edi, 36(%esp)
- xorl %ebx, %ebp
- leal 1859775393(%edi,%edx,1),%edi
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
- /* 20_39 26 */
- movl 40(%esp), %edx
- movl 48(%esp), %ebp
- xorl %ebp, %edx
- movl 8(%esp), %ebp
- xorl %ebp, %edx
- movl 28(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- xorl %eax, %ebp
- movl %edx, 40(%esp)
- xorl %ecx, %ebp
- leal 1859775393(%edx,%ebx,1),%edx
- movl %edi, %ebx
- roll $5, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebp, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebx, %edx
- /* 20_39 27 */
- movl 44(%esp), %ebx
- movl 52(%esp), %ebp
- xorl %ebp, %ebx
- movl 12(%esp), %ebp
- xorl %ebp, %ebx
- movl 32(%esp), %ebp
- xorl %ebp, %ebx
- movl %edi, %ebp
-.byte 209
-.byte 195 /* roll $1 %ebx */
- xorl %esi, %ebp
- movl %ebx, 44(%esp)
- xorl %eax, %ebp
- leal 1859775393(%ebx,%ecx,1),%ebx
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebx
- /* 20_39 28 */
- movl 48(%esp), %ecx
- movl 56(%esp), %ebp
- xorl %ebp, %ecx
- movl 16(%esp), %ebp
- xorl %ebp, %ecx
- movl 36(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- xorl %edi, %ebp
- movl %ecx, 48(%esp)
- xorl %esi, %ebp
- leal 1859775393(%ecx,%eax,1),%ecx
- movl %ebx, %eax
- roll $5, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %ebp, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %eax, %ecx
- /* 20_39 29 */
- movl 52(%esp), %eax
- movl 60(%esp), %ebp
- xorl %ebp, %eax
- movl 20(%esp), %ebp
- xorl %ebp, %eax
- movl 40(%esp), %ebp
- xorl %ebp, %eax
- movl %ebx, %ebp
-.byte 209
-.byte 192 /* roll $1 %eax */
- xorl %edx, %ebp
- movl %eax, 52(%esp)
- xorl %edi, %ebp
- leal 1859775393(%eax,%esi,1),%eax
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %eax
- /* 20_39 30 */
- movl 56(%esp), %esi
- movl (%esp), %ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
- xorl %ebp, %esi
- movl 44(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %ebx, %ebp
- movl %esi, 56(%esp)
- xorl %edx, %ebp
- leal 1859775393(%esi,%edi,1),%esi
- movl %eax, %edi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %ebp, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- /* 20_39 31 */
- movl 60(%esp), %edi
- movl 4(%esp), %ebp
- xorl %ebp, %edi
- movl 28(%esp), %ebp
- xorl %ebp, %edi
- movl 48(%esp), %ebp
- xorl %ebp, %edi
- movl %eax, %ebp
-.byte 209
-.byte 199 /* roll $1 %edi */
- xorl %ecx, %ebp
- movl %edi, 60(%esp)
- xorl %ebx, %ebp
- leal 1859775393(%edi,%edx,1),%edi
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
- /* 20_39 32 */
- movl (%esp), %edx
- movl 8(%esp), %ebp
- xorl %ebp, %edx
- movl 32(%esp), %ebp
- xorl %ebp, %edx
- movl 52(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- xorl %eax, %ebp
- movl %edx, (%esp)
- xorl %ecx, %ebp
- leal 1859775393(%edx,%ebx,1),%edx
- movl %edi, %ebx
- roll $5, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebp, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebx, %edx
- /* 20_39 33 */
- movl 4(%esp), %ebx
- movl 12(%esp), %ebp
- xorl %ebp, %ebx
- movl 36(%esp), %ebp
- xorl %ebp, %ebx
- movl 56(%esp), %ebp
- xorl %ebp, %ebx
- movl %edi, %ebp
-.byte 209
-.byte 195 /* roll $1 %ebx */
- xorl %esi, %ebp
- movl %ebx, 4(%esp)
- xorl %eax, %ebp
- leal 1859775393(%ebx,%ecx,1),%ebx
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebx
- /* 20_39 34 */
- movl 8(%esp), %ecx
- movl 16(%esp), %ebp
- xorl %ebp, %ecx
- movl 40(%esp), %ebp
- xorl %ebp, %ecx
- movl 60(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- xorl %edi, %ebp
- movl %ecx, 8(%esp)
- xorl %esi, %ebp
- leal 1859775393(%ecx,%eax,1),%ecx
- movl %ebx, %eax
- roll $5, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %ebp, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %eax, %ecx
- /* 20_39 35 */
- movl 12(%esp), %eax
- movl 20(%esp), %ebp
- xorl %ebp, %eax
- movl 44(%esp), %ebp
- xorl %ebp, %eax
- movl (%esp), %ebp
- xorl %ebp, %eax
- movl %ebx, %ebp
-.byte 209
-.byte 192 /* roll $1 %eax */
- xorl %edx, %ebp
- movl %eax, 12(%esp)
- xorl %edi, %ebp
- leal 1859775393(%eax,%esi,1),%eax
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %eax
- /* 20_39 36 */
- movl 16(%esp), %esi
- movl 24(%esp), %ebp
- xorl %ebp, %esi
- movl 48(%esp), %ebp
- xorl %ebp, %esi
- movl 4(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %ebx, %ebp
- movl %esi, 16(%esp)
- xorl %edx, %ebp
- leal 1859775393(%esi,%edi,1),%esi
- movl %eax, %edi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %ebp, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- /* 20_39 37 */
- movl 20(%esp), %edi
- movl 28(%esp), %ebp
- xorl %ebp, %edi
- movl 52(%esp), %ebp
- xorl %ebp, %edi
- movl 8(%esp), %ebp
- xorl %ebp, %edi
- movl %eax, %ebp
-.byte 209
-.byte 199 /* roll $1 %edi */
- xorl %ecx, %ebp
- movl %edi, 20(%esp)
- xorl %ebx, %ebp
- leal 1859775393(%edi,%edx,1),%edi
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
- /* 20_39 38 */
- movl 24(%esp), %edx
- movl 32(%esp), %ebp
- xorl %ebp, %edx
- movl 56(%esp), %ebp
- xorl %ebp, %edx
- movl 12(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- xorl %eax, %ebp
- movl %edx, 24(%esp)
- xorl %ecx, %ebp
- leal 1859775393(%edx,%ebx,1),%edx
- movl %edi, %ebx
- roll $5, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebp, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebx, %edx
- /* 20_39 39 */
- movl 28(%esp), %ebx
- movl 36(%esp), %ebp
- xorl %ebp, %ebx
- movl 60(%esp), %ebp
- xorl %ebp, %ebx
- movl 16(%esp), %ebp
- xorl %ebp, %ebx
- movl %edi, %ebp
-.byte 209
-.byte 195 /* roll $1 %ebx */
- xorl %esi, %ebp
- movl %ebx, 28(%esp)
- xorl %eax, %ebp
- leal 1859775393(%ebx,%ecx,1),%ebx
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebx
- /* 40_59 40 */
- movl 32(%esp), %ecx
- movl 40(%esp), %ebp
- xorl %ebp, %ecx
- movl (%esp), %ebp
- xorl %ebp, %ecx
- movl 20(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- orl %edi, %ebp
- movl %ecx, 32(%esp)
- andl %esi, %ebp
- leal 2400959708(%ecx,%eax,1),%ecx
- movl %edx, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- andl %edi, %eax
- orl %eax, %ebp
- movl %ebx, %eax
- roll $5, %eax
- addl %eax, %ebp
- movl 36(%esp), %eax
- addl %ebp, %ecx
- movl 44(%esp), %ebp
- xorl %ebp, %eax
- movl 4(%esp), %ebp
- xorl %ebp, %eax
- movl 24(%esp), %ebp
-.byte 209
-.byte 202 /* rorl $1 %edx */
- xorl %ebp, %eax
-.byte 209
-.byte 192 /* roll $1 %eax */
- movl %ebx, %ebp
- movl %eax, 36(%esp)
- orl %edx, %ebp
- leal 2400959708(%eax,%esi,1),%eax
- movl %ebx, %esi
- andl %edi, %ebp
- andl %edx, %esi
- orl %esi, %ebp
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %ebp
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %eax
- /* 40_59 41 */
- /* 40_59 42 */
- movl 40(%esp), %esi
- movl 48(%esp), %ebp
- xorl %ebp, %esi
- movl 8(%esp), %ebp
- xorl %ebp, %esi
- movl 28(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- orl %ebx, %ebp
- movl %esi, 40(%esp)
- andl %edx, %ebp
- leal 2400959708(%esi,%edi,1),%esi
- movl %ecx, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- andl %ebx, %edi
- orl %edi, %ebp
- movl %eax, %edi
- roll $5, %edi
- addl %edi, %ebp
- movl 44(%esp), %edi
- addl %ebp, %esi
- movl 52(%esp), %ebp
- xorl %ebp, %edi
- movl 12(%esp), %ebp
- xorl %ebp, %edi
- movl 32(%esp), %ebp
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- xorl %ebp, %edi
-.byte 209
-.byte 199 /* roll $1 %edi */
- movl %eax, %ebp
- movl %edi, 44(%esp)
- orl %ecx, %ebp
- leal 2400959708(%edi,%edx,1),%edi
- movl %eax, %edx
- andl %ebx, %ebp
- andl %ecx, %edx
- orl %edx, %ebp
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %ebp
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edi
- /* 40_59 43 */
- /* 40_59 44 */
- movl 48(%esp), %edx
- movl 56(%esp), %ebp
- xorl %ebp, %edx
- movl 16(%esp), %ebp
- xorl %ebp, %edx
- movl 36(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- orl %eax, %ebp
- movl %edx, 48(%esp)
- andl %ecx, %ebp
- leal 2400959708(%edx,%ebx,1),%edx
- movl %esi, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- andl %eax, %ebx
- orl %ebx, %ebp
- movl %edi, %ebx
- roll $5, %ebx
- addl %ebx, %ebp
- movl 52(%esp), %ebx
- addl %ebp, %edx
- movl 60(%esp), %ebp
- xorl %ebp, %ebx
- movl 20(%esp), %ebp
- xorl %ebp, %ebx
- movl 40(%esp), %ebp
-.byte 209
-.byte 206 /* rorl $1 %esi */
- xorl %ebp, %ebx
-.byte 209
-.byte 195 /* roll $1 %ebx */
- movl %edi, %ebp
- movl %ebx, 52(%esp)
- orl %esi, %ebp
- leal 2400959708(%ebx,%ecx,1),%ebx
- movl %edi, %ecx
- andl %eax, %ebp
- andl %esi, %ecx
- orl %ecx, %ebp
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebp
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ebx
- /* 40_59 45 */
- /* 40_59 46 */
- movl 56(%esp), %ecx
- movl (%esp), %ebp
- xorl %ebp, %ecx
- movl 24(%esp), %ebp
- xorl %ebp, %ecx
- movl 44(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- orl %edi, %ebp
- movl %ecx, 56(%esp)
- andl %esi, %ebp
- leal 2400959708(%ecx,%eax,1),%ecx
- movl %edx, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- andl %edi, %eax
- orl %eax, %ebp
- movl %ebx, %eax
- roll $5, %eax
- addl %eax, %ebp
- movl 60(%esp), %eax
- addl %ebp, %ecx
- movl 4(%esp), %ebp
- xorl %ebp, %eax
- movl 28(%esp), %ebp
- xorl %ebp, %eax
- movl 48(%esp), %ebp
-.byte 209
-.byte 202 /* rorl $1 %edx */
- xorl %ebp, %eax
-.byte 209
-.byte 192 /* roll $1 %eax */
- movl %ebx, %ebp
- movl %eax, 60(%esp)
- orl %edx, %ebp
- leal 2400959708(%eax,%esi,1),%eax
- movl %ebx, %esi
- andl %edi, %ebp
- andl %edx, %esi
- orl %esi, %ebp
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %ebp
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %eax
- /* 40_59 47 */
- /* 40_59 48 */
- movl (%esp), %esi
- movl 8(%esp), %ebp
- xorl %ebp, %esi
- movl 32(%esp), %ebp
- xorl %ebp, %esi
- movl 52(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- orl %ebx, %ebp
- movl %esi, (%esp)
- andl %edx, %ebp
- leal 2400959708(%esi,%edi,1),%esi
- movl %ecx, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- andl %ebx, %edi
- orl %edi, %ebp
- movl %eax, %edi
- roll $5, %edi
- addl %edi, %ebp
- movl 4(%esp), %edi
- addl %ebp, %esi
- movl 12(%esp), %ebp
- xorl %ebp, %edi
- movl 36(%esp), %ebp
- xorl %ebp, %edi
- movl 56(%esp), %ebp
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- xorl %ebp, %edi
-.byte 209
-.byte 199 /* roll $1 %edi */
- movl %eax, %ebp
- movl %edi, 4(%esp)
- orl %ecx, %ebp
- leal 2400959708(%edi,%edx,1),%edi
- movl %eax, %edx
- andl %ebx, %ebp
- andl %ecx, %edx
- orl %edx, %ebp
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %ebp
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edi
- /* 40_59 49 */
- /* 40_59 50 */
- movl 8(%esp), %edx
- movl 16(%esp), %ebp
- xorl %ebp, %edx
- movl 40(%esp), %ebp
- xorl %ebp, %edx
- movl 60(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- orl %eax, %ebp
- movl %edx, 8(%esp)
- andl %ecx, %ebp
- leal 2400959708(%edx,%ebx,1),%edx
- movl %esi, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- andl %eax, %ebx
- orl %ebx, %ebp
- movl %edi, %ebx
- roll $5, %ebx
- addl %ebx, %ebp
- movl 12(%esp), %ebx
- addl %ebp, %edx
- movl 20(%esp), %ebp
- xorl %ebp, %ebx
- movl 44(%esp), %ebp
- xorl %ebp, %ebx
- movl (%esp), %ebp
-.byte 209
-.byte 206 /* rorl $1 %esi */
- xorl %ebp, %ebx
-.byte 209
-.byte 195 /* roll $1 %ebx */
- movl %edi, %ebp
- movl %ebx, 12(%esp)
- orl %esi, %ebp
- leal 2400959708(%ebx,%ecx,1),%ebx
- movl %edi, %ecx
- andl %eax, %ebp
- andl %esi, %ecx
- orl %ecx, %ebp
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebp
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ebx
- /* 40_59 51 */
- /* 40_59 52 */
- movl 16(%esp), %ecx
- movl 24(%esp), %ebp
- xorl %ebp, %ecx
- movl 48(%esp), %ebp
- xorl %ebp, %ecx
- movl 4(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- orl %edi, %ebp
- movl %ecx, 16(%esp)
- andl %esi, %ebp
- leal 2400959708(%ecx,%eax,1),%ecx
- movl %edx, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- andl %edi, %eax
- orl %eax, %ebp
- movl %ebx, %eax
- roll $5, %eax
- addl %eax, %ebp
- movl 20(%esp), %eax
- addl %ebp, %ecx
- movl 28(%esp), %ebp
- xorl %ebp, %eax
- movl 52(%esp), %ebp
- xorl %ebp, %eax
- movl 8(%esp), %ebp
-.byte 209
-.byte 202 /* rorl $1 %edx */
- xorl %ebp, %eax
-.byte 209
-.byte 192 /* roll $1 %eax */
- movl %ebx, %ebp
- movl %eax, 20(%esp)
- orl %edx, %ebp
- leal 2400959708(%eax,%esi,1),%eax
- movl %ebx, %esi
- andl %edi, %ebp
- andl %edx, %esi
- orl %esi, %ebp
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %ebp
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %eax
- /* 40_59 53 */
- /* 40_59 54 */
- movl 24(%esp), %esi
- movl 32(%esp), %ebp
- xorl %ebp, %esi
- movl 56(%esp), %ebp
- xorl %ebp, %esi
- movl 12(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- orl %ebx, %ebp
- movl %esi, 24(%esp)
- andl %edx, %ebp
- leal 2400959708(%esi,%edi,1),%esi
- movl %ecx, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- andl %ebx, %edi
- orl %edi, %ebp
- movl %eax, %edi
- roll $5, %edi
- addl %edi, %ebp
- movl 28(%esp), %edi
- addl %ebp, %esi
- movl 36(%esp), %ebp
- xorl %ebp, %edi
- movl 60(%esp), %ebp
- xorl %ebp, %edi
- movl 16(%esp), %ebp
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- xorl %ebp, %edi
-.byte 209
-.byte 199 /* roll $1 %edi */
- movl %eax, %ebp
- movl %edi, 28(%esp)
- orl %ecx, %ebp
- leal 2400959708(%edi,%edx,1),%edi
- movl %eax, %edx
- andl %ebx, %ebp
- andl %ecx, %edx
- orl %edx, %ebp
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %ebp
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edi
- /* 40_59 55 */
- /* 40_59 56 */
- movl 32(%esp), %edx
- movl 40(%esp), %ebp
- xorl %ebp, %edx
- movl (%esp), %ebp
- xorl %ebp, %edx
- movl 20(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- orl %eax, %ebp
- movl %edx, 32(%esp)
- andl %ecx, %ebp
- leal 2400959708(%edx,%ebx,1),%edx
- movl %esi, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- andl %eax, %ebx
- orl %ebx, %ebp
- movl %edi, %ebx
- roll $5, %ebx
- addl %ebx, %ebp
- movl 36(%esp), %ebx
- addl %ebp, %edx
- movl 44(%esp), %ebp
- xorl %ebp, %ebx
- movl 4(%esp), %ebp
- xorl %ebp, %ebx
- movl 24(%esp), %ebp
-.byte 209
-.byte 206 /* rorl $1 %esi */
- xorl %ebp, %ebx
-.byte 209
-.byte 195 /* roll $1 %ebx */
- movl %edi, %ebp
- movl %ebx, 36(%esp)
- orl %esi, %ebp
- leal 2400959708(%ebx,%ecx,1),%ebx
- movl %edi, %ecx
- andl %eax, %ebp
- andl %esi, %ecx
- orl %ecx, %ebp
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebp
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ebx
- /* 40_59 57 */
- /* 40_59 58 */
- movl 40(%esp), %ecx
- movl 48(%esp), %ebp
- xorl %ebp, %ecx
- movl 8(%esp), %ebp
- xorl %ebp, %ecx
- movl 28(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- orl %edi, %ebp
- movl %ecx, 40(%esp)
- andl %esi, %ebp
- leal 2400959708(%ecx,%eax,1),%ecx
- movl %edx, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- andl %edi, %eax
- orl %eax, %ebp
- movl %ebx, %eax
- roll $5, %eax
- addl %eax, %ebp
- movl 44(%esp), %eax
- addl %ebp, %ecx
- movl 52(%esp), %ebp
- xorl %ebp, %eax
- movl 12(%esp), %ebp
- xorl %ebp, %eax
- movl 32(%esp), %ebp
-.byte 209
-.byte 202 /* rorl $1 %edx */
- xorl %ebp, %eax
-.byte 209
-.byte 192 /* roll $1 %eax */
- movl %ebx, %ebp
- movl %eax, 44(%esp)
- orl %edx, %ebp
- leal 2400959708(%eax,%esi,1),%eax
- movl %ebx, %esi
- andl %edi, %ebp
- andl %edx, %esi
- orl %esi, %ebp
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %ebp
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %eax
- /* 40_59 59 */
- /* 20_39 60 */
- movl 48(%esp), %esi
- movl 56(%esp), %ebp
- xorl %ebp, %esi
- movl 16(%esp), %ebp
- xorl %ebp, %esi
- movl 36(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %ebx, %ebp
- movl %esi, 48(%esp)
- xorl %edx, %ebp
- leal 3395469782(%esi,%edi,1),%esi
- movl %eax, %edi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %ebp, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- /* 20_39 61 */
- movl 52(%esp), %edi
- movl 60(%esp), %ebp
- xorl %ebp, %edi
- movl 20(%esp), %ebp
- xorl %ebp, %edi
- movl 40(%esp), %ebp
- xorl %ebp, %edi
- movl %eax, %ebp
-.byte 209
-.byte 199 /* roll $1 %edi */
- xorl %ecx, %ebp
- movl %edi, 52(%esp)
- xorl %ebx, %ebp
- leal 3395469782(%edi,%edx,1),%edi
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
- /* 20_39 62 */
- movl 56(%esp), %edx
- movl (%esp), %ebp
- xorl %ebp, %edx
- movl 24(%esp), %ebp
- xorl %ebp, %edx
- movl 44(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- xorl %eax, %ebp
- movl %edx, 56(%esp)
- xorl %ecx, %ebp
- leal 3395469782(%edx,%ebx,1),%edx
- movl %edi, %ebx
- roll $5, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebp, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebx, %edx
- /* 20_39 63 */
- movl 60(%esp), %ebx
- movl 4(%esp), %ebp
- xorl %ebp, %ebx
- movl 28(%esp), %ebp
- xorl %ebp, %ebx
- movl 48(%esp), %ebp
- xorl %ebp, %ebx
- movl %edi, %ebp
-.byte 209
-.byte 195 /* roll $1 %ebx */
- xorl %esi, %ebp
- movl %ebx, 60(%esp)
- xorl %eax, %ebp
- leal 3395469782(%ebx,%ecx,1),%ebx
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebx
- /* 20_39 64 */
- movl (%esp), %ecx
- movl 8(%esp), %ebp
- xorl %ebp, %ecx
- movl 32(%esp), %ebp
- xorl %ebp, %ecx
- movl 52(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- xorl %edi, %ebp
- movl %ecx, (%esp)
- xorl %esi, %ebp
- leal 3395469782(%ecx,%eax,1),%ecx
- movl %ebx, %eax
- roll $5, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %ebp, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %eax, %ecx
- /* 20_39 65 */
- movl 4(%esp), %eax
- movl 12(%esp), %ebp
- xorl %ebp, %eax
- movl 36(%esp), %ebp
- xorl %ebp, %eax
- movl 56(%esp), %ebp
- xorl %ebp, %eax
- movl %ebx, %ebp
-.byte 209
-.byte 192 /* roll $1 %eax */
- xorl %edx, %ebp
- movl %eax, 4(%esp)
- xorl %edi, %ebp
- leal 3395469782(%eax,%esi,1),%eax
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %eax
- /* 20_39 66 */
- movl 8(%esp), %esi
- movl 16(%esp), %ebp
- xorl %ebp, %esi
- movl 40(%esp), %ebp
- xorl %ebp, %esi
- movl 60(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %ebx, %ebp
- movl %esi, 8(%esp)
- xorl %edx, %ebp
- leal 3395469782(%esi,%edi,1),%esi
- movl %eax, %edi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %ebp, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- /* 20_39 67 */
- movl 12(%esp), %edi
- movl 20(%esp), %ebp
- xorl %ebp, %edi
- movl 44(%esp), %ebp
- xorl %ebp, %edi
- movl (%esp), %ebp
- xorl %ebp, %edi
- movl %eax, %ebp
-.byte 209
-.byte 199 /* roll $1 %edi */
- xorl %ecx, %ebp
- movl %edi, 12(%esp)
- xorl %ebx, %ebp
- leal 3395469782(%edi,%edx,1),%edi
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
- /* 20_39 68 */
- movl 16(%esp), %edx
- movl 24(%esp), %ebp
- xorl %ebp, %edx
- movl 48(%esp), %ebp
- xorl %ebp, %edx
- movl 4(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- xorl %eax, %ebp
- movl %edx, 16(%esp)
- xorl %ecx, %ebp
- leal 3395469782(%edx,%ebx,1),%edx
- movl %edi, %ebx
- roll $5, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebp, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebx, %edx
- /* 20_39 69 */
- movl 20(%esp), %ebx
- movl 28(%esp), %ebp
- xorl %ebp, %ebx
- movl 52(%esp), %ebp
- xorl %ebp, %ebx
- movl 8(%esp), %ebp
- xorl %ebp, %ebx
- movl %edi, %ebp
-.byte 209
-.byte 195 /* roll $1 %ebx */
- xorl %esi, %ebp
- movl %ebx, 20(%esp)
- xorl %eax, %ebp
- leal 3395469782(%ebx,%ecx,1),%ebx
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebx
- /* 20_39 70 */
- movl 24(%esp), %ecx
- movl 32(%esp), %ebp
- xorl %ebp, %ecx
- movl 56(%esp), %ebp
- xorl %ebp, %ecx
- movl 12(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- xorl %edi, %ebp
- movl %ecx, 24(%esp)
- xorl %esi, %ebp
- leal 3395469782(%ecx,%eax,1),%ecx
- movl %ebx, %eax
- roll $5, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %ebp, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %eax, %ecx
- /* 20_39 71 */
- movl 28(%esp), %eax
- movl 36(%esp), %ebp
- xorl %ebp, %eax
- movl 60(%esp), %ebp
- xorl %ebp, %eax
- movl 16(%esp), %ebp
- xorl %ebp, %eax
- movl %ebx, %ebp
-.byte 209
-.byte 192 /* roll $1 %eax */
- xorl %edx, %ebp
- movl %eax, 28(%esp)
- xorl %edi, %ebp
- leal 3395469782(%eax,%esi,1),%eax
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %eax
- /* 20_39 72 */
- movl 32(%esp), %esi
- movl 40(%esp), %ebp
- xorl %ebp, %esi
- movl (%esp), %ebp
- xorl %ebp, %esi
- movl 20(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %ebx, %ebp
- movl %esi, 32(%esp)
- xorl %edx, %ebp
- leal 3395469782(%esi,%edi,1),%esi
- movl %eax, %edi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %ebp, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- /* 20_39 73 */
- movl 36(%esp), %edi
- movl 44(%esp), %ebp
- xorl %ebp, %edi
- movl 4(%esp), %ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
- xorl %ebp, %edi
- movl %eax, %ebp
-.byte 209
-.byte 199 /* roll $1 %edi */
- xorl %ecx, %ebp
- movl %edi, 36(%esp)
- xorl %ebx, %ebp
- leal 3395469782(%edi,%edx,1),%edi
- movl %esi, %edx
- roll $5, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %ebp, %edx
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
- /* 20_39 74 */
- movl 40(%esp), %edx
- movl 48(%esp), %ebp
- xorl %ebp, %edx
- movl 8(%esp), %ebp
- xorl %ebp, %edx
- movl 28(%esp), %ebp
- xorl %ebp, %edx
- movl %esi, %ebp
-.byte 209
-.byte 194 /* roll $1 %edx */
- xorl %eax, %ebp
- movl %edx, 40(%esp)
- xorl %ecx, %ebp
- leal 3395469782(%edx,%ebx,1),%edx
- movl %edi, %ebx
- roll $5, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebp, %ebx
-.byte 209
-.byte 206 /* rorl $1 %esi */
- addl %ebx, %edx
- /* 20_39 75 */
- movl 44(%esp), %ebx
- movl 52(%esp), %ebp
- xorl %ebp, %ebx
- movl 12(%esp), %ebp
- xorl %ebp, %ebx
- movl 32(%esp), %ebp
- xorl %ebp, %ebx
- movl %edi, %ebp
-.byte 209
-.byte 195 /* roll $1 %ebx */
- xorl %esi, %ebp
- movl %ebx, 44(%esp)
- xorl %eax, %ebp
- leal 3395469782(%ebx,%ecx,1),%ebx
- movl %edx, %ecx
- roll $5, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ebp, %ecx
-.byte 209
-.byte 207 /* rorl $1 %edi */
- addl %ecx, %ebx
- /* 20_39 76 */
- movl 48(%esp), %ecx
- movl 56(%esp), %ebp
- xorl %ebp, %ecx
- movl 16(%esp), %ebp
- xorl %ebp, %ecx
- movl 36(%esp), %ebp
- xorl %ebp, %ecx
- movl %edx, %ebp
-.byte 209
-.byte 193 /* roll $1 %ecx */
- xorl %edi, %ebp
- movl %ecx, 48(%esp)
- xorl %esi, %ebp
- leal 3395469782(%ecx,%eax,1),%ecx
- movl %ebx, %eax
- roll $5, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %ebp, %eax
-.byte 209
-.byte 202 /* rorl $1 %edx */
- addl %eax, %ecx
- /* 20_39 77 */
- movl 52(%esp), %eax
- movl 60(%esp), %ebp
- xorl %ebp, %eax
- movl 20(%esp), %ebp
- xorl %ebp, %eax
- movl 40(%esp), %ebp
- xorl %ebp, %eax
- movl %ebx, %ebp
-.byte 209
-.byte 192 /* roll $1 %eax */
- xorl %edx, %ebp
- movl %eax, 52(%esp)
- xorl %edi, %ebp
- leal 3395469782(%eax,%esi,1),%eax
- movl %ecx, %esi
- roll $5, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %ebp, %esi
-.byte 209
-.byte 203 /* rorl $1 %ebx */
- addl %esi, %eax
- /* 20_39 78 */
- movl 56(%esp), %esi
- movl (%esp), %ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
- xorl %ebp, %esi
- movl 44(%esp), %ebp
- xorl %ebp, %esi
- movl %ecx, %ebp
-.byte 209
-.byte 198 /* roll $1 %esi */
- xorl %ebx, %ebp
- movl %esi, 56(%esp)
- xorl %edx, %ebp
- leal 3395469782(%esi,%edi,1),%esi
- movl %eax, %edi
- roll $5, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %ebp, %edi
-.byte 209
-.byte 201 /* rorl $1 %ecx */
- addl %edi, %esi
- /* 20_39 79 */
- movl 60(%esp), %edi
- movl 4(%esp), %ebp
- xorl %ebp, %edi
- movl 28(%esp), %ebp
- xorl %ebp, %edi
- movl 48(%esp), %ebp
- xorl %ebp, %edi
- movl %eax, %ebp
-.byte 209
-.byte 199 /* roll $1 %edi */
- xorl %ecx, %ebp
- movl %edi, 60(%esp)
- xorl %ebx, %ebp
- leal 3395469782(%edi,%edx,1),%edi
- movl %esi, %edx
- roll $5, %edx
- addl %ebp, %edx
- movl 128(%esp), %ebp
-.byte 209
-.byte 200 /* rorl $1 %eax */
- addl %edx, %edi
-.byte 209
-.byte 200 /* rorl $1 %eax */
- /* End processing */
-
- movl 12(%ebp), %edx
- addl %ecx, %edx
- movl 4(%ebp), %ecx
- addl %esi, %ecx
- movl %eax, %esi
- movl (%ebp), %eax
- movl %edx, 12(%ebp)
- addl %edi, %eax
- movl 16(%ebp), %edi
- addl %ebx, %edi
- movl 8(%ebp), %ebx
- addl %esi, %ebx
- movl %eax, (%ebp)
- movl 132(%esp), %esi
- movl %ebx, 8(%ebp)
- addl $64, %esi
- movl 68(%esp), %eax
- movl %edi, 16(%ebp)
- cmpl %eax, %esi
- movl %ecx, 4(%ebp)
- jl L000start
- addl $108, %esp
- popl %edi
- popl %ebx
- popl %ebp
- popl %esi
- ret
-
-ENTRY(sha1_block_asm_host_order)
- movl 12(%esp), %ecx
- pushl %esi
- sall $6, %ecx
- movl 12(%esp), %esi
- pushl %ebp
- addl %esi, %ecx
- pushl %ebx
- movl 16(%esp), %ebp
- pushl %edi
- movl 12(%ebp), %edx
- subl $108, %esp
- movl 16(%ebp), %edi
- movl 8(%ebp), %ebx
- movl %ecx, 68(%esp)
- /* First we need to setup the X array */
- movl (%esi), %eax
- movl 4(%esi), %ecx
- movl %eax, (%esp)
- movl %ecx, 4(%esp)
- movl 8(%esi), %eax
- movl 12(%esi), %ecx
- movl %eax, 8(%esp)
- movl %ecx, 12(%esp)
- movl 16(%esi), %eax
- movl 20(%esi), %ecx
- movl %eax, 16(%esp)
- movl %ecx, 20(%esp)
- movl 24(%esi), %eax
- movl 28(%esi), %ecx
- movl %eax, 24(%esp)
- movl %ecx, 28(%esp)
- movl 32(%esi), %eax
- movl 36(%esi), %ecx
- movl %eax, 32(%esp)
- movl %ecx, 36(%esp)
- movl 40(%esi), %eax
- movl 44(%esi), %ecx
- movl %eax, 40(%esp)
- movl %ecx, 44(%esp)
- movl 48(%esi), %eax
- movl 52(%esi), %ecx
- movl %eax, 48(%esp)
- movl %ecx, 52(%esp)
- movl 56(%esi), %eax
- movl 60(%esi), %ecx
- movl %eax, 56(%esp)
- movl %ecx, 60(%esp)
- jmp L001shortcut
diff --git a/lib/libcrypto/arch/i386/sha256-586.S b/lib/libcrypto/arch/i386/sha256-586.S
new file mode 100644
index 00000000000..973e50d198a
--- /dev/null
+++ b/lib/libcrypto/arch/i386/sha256-586.S
@@ -0,0 +1,261 @@
+.file "sha512-586.s"
+.text
+.globl sha256_block_data_order
+.type sha256_block_data_order,@function
+.align 16
+sha256_block_data_order:
+.L_sha256_block_data_order_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 20(%esp),%esi
+ movl 24(%esp),%edi
+ movl 28(%esp),%eax
+ movl %esp,%ebx
+ call .L000pic_point
+.L000pic_point:
+ popl %ebp
+ leal .L001K256-.L000pic_point(%ebp),%ebp
+ subl $16,%esp
+ andl $-64,%esp
+ shll $6,%eax
+ addl %edi,%eax
+ movl %esi,(%esp)
+ movl %edi,4(%esp)
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+.align 16
+.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 16
+.L00300_15:
+ movl 92(%esp),%ebx
+ movl %edx,%ecx
+ rorl $6,%ecx
+ movl %edx,%edi
+ rorl $11,%edi
+ movl 20(%esp),%esi
+ xorl %edi,%ecx
+ rorl $14,%edi
+ xorl %edi,%ecx
+ movl 24(%esp),%edi
+ addl %ecx,%ebx
+ movl %edx,16(%esp)
+ xorl %edi,%esi
+ movl %eax,%ecx
+ andl %edx,%esi
+ movl 12(%esp),%edx
+ xorl %edi,%esi
+ movl %eax,%edi
+ addl %esi,%ebx
+ rorl $2,%ecx
+ addl 28(%esp),%ebx
+ rorl $13,%edi
+ movl 4(%esp),%esi
+ xorl %edi,%ecx
+ rorl $9,%edi
+ addl %ebx,%edx
+ xorl %edi,%ecx
+ 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 16
+.L00416_63:
+ movl %ebx,%esi
+ movl 100(%esp),%ecx
+ shrl $3,%ebx
+ rorl $7,%esi
+ xorl %esi,%ebx
+ rorl $11,%esi
+ movl %ecx,%edi
+ xorl %esi,%ebx
+ shrl $10,%ecx
+ movl 156(%esp),%esi
+ rorl $17,%edi
+ xorl %edi,%ecx
+ rorl $2,%edi
+ addl %esi,%ebx
+ xorl %ecx,%edi
+ addl %edi,%ebx
+ movl %edx,%ecx
+ addl 120(%esp),%ebx
+ rorl $6,%ecx
+ movl %edx,%edi
+ rorl $11,%edi
+ movl 20(%esp),%esi
+ xorl %edi,%ecx
+ rorl $14,%edi
+ movl %ebx,92(%esp)
+ xorl %edi,%ecx
+ movl 24(%esp),%edi
+ addl %ecx,%ebx
+ movl %edx,16(%esp)
+ xorl %edi,%esi
+ movl %eax,%ecx
+ andl %edx,%esi
+ movl 12(%esp),%edx
+ xorl %edi,%esi
+ movl %eax,%edi
+ addl %esi,%ebx
+ rorl $2,%ecx
+ addl 28(%esp),%ebx
+ rorl $13,%edi
+ movl 4(%esp),%esi
+ xorl %edi,%ecx
+ rorl $9,%edi
+ addl %ebx,%edx
+ xorl %edi,%ecx
+ 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 64
+.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
+.size sha256_block_data_order,.-.L_sha256_block_data_order_begin
+.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/lib/libcrypto/arch/i386/sha512-586.S b/lib/libcrypto/arch/i386/sha512-586.S
new file mode 100644
index 00000000000..4b806f352e2
--- /dev/null
+++ b/lib/libcrypto/arch/i386/sha512-586.S
@@ -0,0 +1,563 @@
+.file "sha512-586.s"
+.text
+.globl sha512_block_data_order
+.type sha512_block_data_order,@function
+.align 16
+sha512_block_data_order:
+.L_sha512_block_data_order_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 20(%esp),%esi
+ movl 24(%esp),%edi
+ movl 28(%esp),%eax
+ movl %esp,%ebx
+ call .L000pic_point
+.L000pic_point:
+ popl %ebp
+ leal .L001K512-.L000pic_point(%ebp),%ebp
+ subl $16,%esp
+ andl $-64,%esp
+ shll $7,%eax
+ addl %edi,%eax
+ movl %esi,(%esp)
+ movl %edi,4(%esp)
+ movl %eax,8(%esp)
+ movl %ebx,12(%esp)
+.align 16
+.L002loop_x86:
+ movl (%edi),%eax
+ movl 4(%edi),%ebx
+ movl 8(%edi),%ecx
+ movl 12(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ movl 16(%edi),%eax
+ movl 20(%edi),%ebx
+ movl 24(%edi),%ecx
+ movl 28(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ movl 32(%edi),%eax
+ movl 36(%edi),%ebx
+ movl 40(%edi),%ecx
+ movl 44(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ movl 48(%edi),%eax
+ movl 52(%edi),%ebx
+ movl 56(%edi),%ecx
+ movl 60(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ movl 64(%edi),%eax
+ movl 68(%edi),%ebx
+ movl 72(%edi),%ecx
+ movl 76(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ movl 80(%edi),%eax
+ movl 84(%edi),%ebx
+ movl 88(%edi),%ecx
+ movl 92(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ movl 96(%edi),%eax
+ movl 100(%edi),%ebx
+ movl 104(%edi),%ecx
+ movl 108(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ movl 112(%edi),%eax
+ movl 116(%edi),%ebx
+ movl 120(%edi),%ecx
+ movl 124(%edi),%edx
+ bswap %eax
+ bswap %ebx
+ bswap %ecx
+ bswap %edx
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ addl $128,%edi
+ subl $72,%esp
+ movl %edi,204(%esp)
+ leal 8(%esp),%edi
+ movl $16,%ecx
+.long 2784229001
+.align 16
+.L00300_15_x86:
+ movl 40(%esp),%ecx
+ movl 44(%esp),%edx
+ movl %ecx,%esi
+ shrl $9,%ecx
+ movl %edx,%edi
+ shrl $9,%edx
+ movl %ecx,%ebx
+ shll $14,%esi
+ movl %edx,%eax
+ shll $14,%edi
+ xorl %esi,%ebx
+ shrl $5,%ecx
+ xorl %edi,%eax
+ shrl $5,%edx
+ xorl %ecx,%eax
+ shll $4,%esi
+ xorl %edx,%ebx
+ shll $4,%edi
+ xorl %esi,%ebx
+ shrl $4,%ecx
+ xorl %edi,%eax
+ shrl $4,%edx
+ xorl %ecx,%eax
+ shll $5,%esi
+ xorl %edx,%ebx
+ shll $5,%edi
+ xorl %esi,%eax
+ xorl %edi,%ebx
+ movl 48(%esp),%ecx
+ movl 52(%esp),%edx
+ movl 56(%esp),%esi
+ movl 60(%esp),%edi
+ addl 64(%esp),%eax
+ adcl 68(%esp),%ebx
+ xorl %esi,%ecx
+ xorl %edi,%edx
+ andl 40(%esp),%ecx
+ andl 44(%esp),%edx
+ addl 192(%esp),%eax
+ adcl 196(%esp),%ebx
+ xorl %esi,%ecx
+ xorl %edi,%edx
+ movl (%ebp),%esi
+ movl 4(%ebp),%edi
+ addl %ecx,%eax
+ adcl %edx,%ebx
+ movl 32(%esp),%ecx
+ movl 36(%esp),%edx
+ addl %esi,%eax
+ adcl %edi,%ebx
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ addl %ecx,%eax
+ adcl %edx,%ebx
+ movl 8(%esp),%ecx
+ movl 12(%esp),%edx
+ movl %eax,32(%esp)
+ movl %ebx,36(%esp)
+ movl %ecx,%esi
+ shrl $2,%ecx
+ movl %edx,%edi
+ shrl $2,%edx
+ movl %ecx,%ebx
+ shll $4,%esi
+ movl %edx,%eax
+ shll $4,%edi
+ xorl %esi,%ebx
+ shrl $5,%ecx
+ xorl %edi,%eax
+ shrl $5,%edx
+ xorl %ecx,%ebx
+ shll $21,%esi
+ xorl %edx,%eax
+ shll $21,%edi
+ xorl %esi,%eax
+ shrl $21,%ecx
+ xorl %edi,%ebx
+ shrl $21,%edx
+ xorl %ecx,%eax
+ shll $5,%esi
+ xorl %edx,%ebx
+ shll $5,%edi
+ xorl %esi,%eax
+ xorl %edi,%ebx
+ movl 8(%esp),%ecx
+ movl 12(%esp),%edx
+ movl 16(%esp),%esi
+ movl 20(%esp),%edi
+ addl (%esp),%eax
+ adcl 4(%esp),%ebx
+ orl %esi,%ecx
+ orl %edi,%edx
+ andl 24(%esp),%ecx
+ andl 28(%esp),%edx
+ andl 8(%esp),%esi
+ andl 12(%esp),%edi
+ orl %esi,%ecx
+ orl %edi,%edx
+ addl %ecx,%eax
+ adcl %edx,%ebx
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ movb (%ebp),%dl
+ subl $8,%esp
+ leal 8(%ebp),%ebp
+ cmpb $148,%dl
+ jne .L00300_15_x86
+.align 16
+.L00416_79_x86:
+ movl 312(%esp),%ecx
+ movl 316(%esp),%edx
+ movl %ecx,%esi
+ shrl $1,%ecx
+ movl %edx,%edi
+ shrl $1,%edx
+ movl %ecx,%eax
+ shll $24,%esi
+ movl %edx,%ebx
+ shll $24,%edi
+ xorl %esi,%ebx
+ shrl $6,%ecx
+ xorl %edi,%eax
+ shrl $6,%edx
+ xorl %ecx,%eax
+ shll $7,%esi
+ xorl %edx,%ebx
+ shll $1,%edi
+ xorl %esi,%ebx
+ shrl $1,%ecx
+ xorl %edi,%eax
+ shrl $1,%edx
+ xorl %ecx,%eax
+ shll $6,%edi
+ xorl %edx,%ebx
+ xorl %edi,%eax
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ movl 208(%esp),%ecx
+ movl 212(%esp),%edx
+ movl %ecx,%esi
+ shrl $6,%ecx
+ movl %edx,%edi
+ shrl $6,%edx
+ movl %ecx,%eax
+ shll $3,%esi
+ movl %edx,%ebx
+ shll $3,%edi
+ xorl %esi,%eax
+ shrl $13,%ecx
+ xorl %edi,%ebx
+ shrl $13,%edx
+ xorl %ecx,%eax
+ shll $10,%esi
+ xorl %edx,%ebx
+ shll $10,%edi
+ xorl %esi,%ebx
+ shrl $10,%ecx
+ xorl %edi,%eax
+ shrl $10,%edx
+ xorl %ecx,%ebx
+ shll $13,%edi
+ xorl %edx,%eax
+ xorl %edi,%eax
+ movl 320(%esp),%ecx
+ movl 324(%esp),%edx
+ addl (%esp),%eax
+ adcl 4(%esp),%ebx
+ movl 248(%esp),%esi
+ movl 252(%esp),%edi
+ addl %ecx,%eax
+ adcl %edx,%ebx
+ addl %esi,%eax
+ adcl %edi,%ebx
+ movl %eax,192(%esp)
+ movl %ebx,196(%esp)
+ movl 40(%esp),%ecx
+ movl 44(%esp),%edx
+ movl %ecx,%esi
+ shrl $9,%ecx
+ movl %edx,%edi
+ shrl $9,%edx
+ movl %ecx,%ebx
+ shll $14,%esi
+ movl %edx,%eax
+ shll $14,%edi
+ xorl %esi,%ebx
+ shrl $5,%ecx
+ xorl %edi,%eax
+ shrl $5,%edx
+ xorl %ecx,%eax
+ shll $4,%esi
+ xorl %edx,%ebx
+ shll $4,%edi
+ xorl %esi,%ebx
+ shrl $4,%ecx
+ xorl %edi,%eax
+ shrl $4,%edx
+ xorl %ecx,%eax
+ shll $5,%esi
+ xorl %edx,%ebx
+ shll $5,%edi
+ xorl %esi,%eax
+ xorl %edi,%ebx
+ movl 48(%esp),%ecx
+ movl 52(%esp),%edx
+ movl 56(%esp),%esi
+ movl 60(%esp),%edi
+ addl 64(%esp),%eax
+ adcl 68(%esp),%ebx
+ xorl %esi,%ecx
+ xorl %edi,%edx
+ andl 40(%esp),%ecx
+ andl 44(%esp),%edx
+ addl 192(%esp),%eax
+ adcl 196(%esp),%ebx
+ xorl %esi,%ecx
+ xorl %edi,%edx
+ movl (%ebp),%esi
+ movl 4(%ebp),%edi
+ addl %ecx,%eax
+ adcl %edx,%ebx
+ movl 32(%esp),%ecx
+ movl 36(%esp),%edx
+ addl %esi,%eax
+ adcl %edi,%ebx
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ addl %ecx,%eax
+ adcl %edx,%ebx
+ movl 8(%esp),%ecx
+ movl 12(%esp),%edx
+ movl %eax,32(%esp)
+ movl %ebx,36(%esp)
+ movl %ecx,%esi
+ shrl $2,%ecx
+ movl %edx,%edi
+ shrl $2,%edx
+ movl %ecx,%ebx
+ shll $4,%esi
+ movl %edx,%eax
+ shll $4,%edi
+ xorl %esi,%ebx
+ shrl $5,%ecx
+ xorl %edi,%eax
+ shrl $5,%edx
+ xorl %ecx,%ebx
+ shll $21,%esi
+ xorl %edx,%eax
+ shll $21,%edi
+ xorl %esi,%eax
+ shrl $21,%ecx
+ xorl %edi,%ebx
+ shrl $21,%edx
+ xorl %ecx,%eax
+ shll $5,%esi
+ xorl %edx,%ebx
+ shll $5,%edi
+ xorl %esi,%eax
+ xorl %edi,%ebx
+ movl 8(%esp),%ecx
+ movl 12(%esp),%edx
+ movl 16(%esp),%esi
+ movl 20(%esp),%edi
+ addl (%esp),%eax
+ adcl 4(%esp),%ebx
+ orl %esi,%ecx
+ orl %edi,%edx
+ andl 24(%esp),%ecx
+ andl 28(%esp),%edx
+ andl 8(%esp),%esi
+ andl 12(%esp),%edi
+ orl %esi,%ecx
+ orl %edi,%edx
+ addl %ecx,%eax
+ adcl %edx,%ebx
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ movb (%ebp),%dl
+ subl $8,%esp
+ leal 8(%ebp),%ebp
+ cmpb $23,%dl
+ jne .L00416_79_x86
+ movl 840(%esp),%esi
+ movl 844(%esp),%edi
+ movl (%esi),%eax
+ movl 4(%esi),%ebx
+ movl 8(%esi),%ecx
+ movl 12(%esi),%edx
+ addl 8(%esp),%eax
+ adcl 12(%esp),%ebx
+ movl %eax,(%esi)
+ movl %ebx,4(%esi)
+ addl 16(%esp),%ecx
+ adcl 20(%esp),%edx
+ movl %ecx,8(%esi)
+ movl %edx,12(%esi)
+ movl 16(%esi),%eax
+ movl 20(%esi),%ebx
+ movl 24(%esi),%ecx
+ movl 28(%esi),%edx
+ addl 24(%esp),%eax
+ adcl 28(%esp),%ebx
+ movl %eax,16(%esi)
+ movl %ebx,20(%esi)
+ addl 32(%esp),%ecx
+ adcl 36(%esp),%edx
+ movl %ecx,24(%esi)
+ movl %edx,28(%esi)
+ movl 32(%esi),%eax
+ movl 36(%esi),%ebx
+ movl 40(%esi),%ecx
+ movl 44(%esi),%edx
+ addl 40(%esp),%eax
+ adcl 44(%esp),%ebx
+ movl %eax,32(%esi)
+ movl %ebx,36(%esi)
+ addl 48(%esp),%ecx
+ adcl 52(%esp),%edx
+ movl %ecx,40(%esi)
+ movl %edx,44(%esi)
+ movl 48(%esi),%eax
+ movl 52(%esi),%ebx
+ movl 56(%esi),%ecx
+ movl 60(%esi),%edx
+ addl 56(%esp),%eax
+ adcl 60(%esp),%ebx
+ movl %eax,48(%esi)
+ movl %ebx,52(%esi)
+ addl 64(%esp),%ecx
+ adcl 68(%esp),%edx
+ movl %ecx,56(%esi)
+ movl %edx,60(%esi)
+ addl $840,%esp
+ subl $640,%ebp
+ cmpl 8(%esp),%edi
+ jb .L002loop_x86
+ movl 12(%esp),%esp
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.align 64
+.L001K512:
+.long 3609767458,1116352408
+.long 602891725,1899447441
+.long 3964484399,3049323471
+.long 2173295548,3921009573
+.long 4081628472,961987163
+.long 3053834265,1508970993
+.long 2937671579,2453635748
+.long 3664609560,2870763221
+.long 2734883394,3624381080
+.long 1164996542,310598401
+.long 1323610764,607225278
+.long 3590304994,1426881987
+.long 4068182383,1925078388
+.long 991336113,2162078206
+.long 633803317,2614888103
+.long 3479774868,3248222580
+.long 2666613458,3835390401
+.long 944711139,4022224774
+.long 2341262773,264347078
+.long 2007800933,604807628
+.long 1495990901,770255983
+.long 1856431235,1249150122
+.long 3175218132,1555081692
+.long 2198950837,1996064986
+.long 3999719339,2554220882
+.long 766784016,2821834349
+.long 2566594879,2952996808
+.long 3203337956,3210313671
+.long 1034457026,3336571891
+.long 2466948901,3584528711
+.long 3758326383,113926993
+.long 168717936,338241895
+.long 1188179964,666307205
+.long 1546045734,773529912
+.long 1522805485,1294757372
+.long 2643833823,1396182291
+.long 2343527390,1695183700
+.long 1014477480,1986661051
+.long 1206759142,2177026350
+.long 344077627,2456956037
+.long 1290863460,2730485921
+.long 3158454273,2820302411
+.long 3505952657,3259730800
+.long 106217008,3345764771
+.long 3606008344,3516065817
+.long 1432725776,3600352804
+.long 1467031594,4094571909
+.long 851169720,275423344
+.long 3100823752,430227734
+.long 1363258195,506948616
+.long 3750685593,659060556
+.long 3785050280,883997877
+.long 3318307427,958139571
+.long 3812723403,1322822218
+.long 2003034995,1537002063
+.long 3602036899,1747873779
+.long 1575990012,1955562222
+.long 1125592928,2024104815
+.long 2716904306,2227730452
+.long 442776044,2361852424
+.long 593698344,2428436474
+.long 3733110249,2756734187
+.long 2999351573,3204031479
+.long 3815920427,3329325298
+.long 3928383900,3391569614
+.long 566280711,3515267271
+.long 3454069534,3940187606
+.long 4000239992,4118630271
+.long 1914138554,116418474
+.long 2731055270,174292421
+.long 3203993006,289380356
+.long 320620315,460393269
+.long 587496836,685471733
+.long 1086792851,852142971
+.long 365543100,1017036298
+.long 2618297676,1126000580
+.long 3409855158,1288033470
+.long 4234509866,1501505948
+.long 987167468,1607167915
+.long 1246189591,1816402316
+.size sha512_block_data_order,.-.L_sha512_block_data_order_begin
+.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
+.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
+.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
+.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
+.byte 62,0
diff --git a/lib/libcrypto/arch/i386/x86.S b/lib/libcrypto/arch/i386/x86.S
new file mode 100644
index 00000000000..297028e9fcf
--- /dev/null
+++ b/lib/libcrypto/arch/i386/x86.S
@@ -0,0 +1,2114 @@
+.file "/net/shiny/src-6/NetBSD/cvsroot/src/crypto/dist/openssl/crypto/bn/asm/x86.s"
+.text
+.globl bn_mul_add_words
+.type bn_mul_add_words,@function
+.align 16
+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
+.L001maw_loop:
+ movl %ecx,(%esp)
+
+ movl (%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl (%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,(%edi)
+ movl %edx,%esi
+
+ movl 4(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 4(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,4(%edi)
+ movl %edx,%esi
+
+ movl 8(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 8(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,8(%edi)
+ movl %edx,%esi
+
+ movl 12(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 12(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,12(%edi)
+ movl %edx,%esi
+
+ movl 16(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 16(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,16(%edi)
+ movl %edx,%esi
+
+ movl 20(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 20(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,20(%edi)
+ movl %edx,%esi
+
+ movl 24(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 24(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,24(%edi)
+ movl %edx,%esi
+
+ movl 28(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 28(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,28(%edi)
+ movl %edx,%esi
+
+ movl (%esp),%ecx
+ addl $32,%ebx
+ addl $32,%edi
+ subl $8,%ecx
+ jnz .L001maw_loop
+.L000maw_finish:
+ movl 32(%esp),%ecx
+ andl $7,%ecx
+ jnz .L002maw_finish2
+ jmp .L003maw_end
+.L002maw_finish2:
+
+ movl (%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl (%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ decl %ecx
+ movl %eax,(%edi)
+ movl %edx,%esi
+ jz .L003maw_end
+
+ movl 4(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 4(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ decl %ecx
+ movl %eax,4(%edi)
+ movl %edx,%esi
+ jz .L003maw_end
+
+ movl 8(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 8(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ decl %ecx
+ movl %eax,8(%edi)
+ movl %edx,%esi
+ jz .L003maw_end
+
+ movl 12(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 12(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ decl %ecx
+ movl %eax,12(%edi)
+ movl %edx,%esi
+ jz .L003maw_end
+
+ movl 16(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 16(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ decl %ecx
+ movl %eax,16(%edi)
+ movl %edx,%esi
+ jz .L003maw_end
+
+ movl 20(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 20(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%eax
+ adcl $0,%edx
+ decl %ecx
+ movl %eax,20(%edi)
+ movl %edx,%esi
+ jz .L003maw_end
+
+ movl 24(%ebx),%eax
+ mull %ebp
+ addl %esi,%eax
+ movl 24(%edi),%esi
+ adcl $0,%edx
+ addl %esi,%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
+.size bn_mul_add_words,.-.L_bn_mul_add_words_begin
+.globl bn_mul_words
+.type bn_mul_words,@function
+.align 16
+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:
+
+ movl (%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,(%edi)
+ movl %edx,%esi
+
+ movl 4(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,4(%edi)
+ movl %edx,%esi
+
+ movl 8(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,8(%edi)
+ movl %edx,%esi
+
+ movl 12(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,12(%edi)
+ movl %edx,%esi
+
+ movl 16(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,16(%edi)
+ movl %edx,%esi
+
+ movl 20(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,20(%edi)
+ movl %edx,%esi
+
+ movl 24(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,24(%edi)
+ movl %edx,%esi
+
+ 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:
+
+ movl (%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 4(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,4(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 8(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,8(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 12(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,12(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 16(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,16(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ movl 20(%ebx),%eax
+ mull %ecx
+ addl %esi,%eax
+ adcl $0,%edx
+ movl %eax,20(%edi)
+ movl %edx,%esi
+ decl %ebp
+ jz .L007mw_end
+
+ 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
+.size bn_mul_words,.-.L_bn_mul_words_begin
+.globl bn_sqr_words
+.type bn_sqr_words,@function
+.align 16
+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:
+
+ movl (%edi),%eax
+ mull %eax
+ movl %eax,(%esi)
+ movl %edx,4(%esi)
+
+ movl 4(%edi),%eax
+ mull %eax
+ movl %eax,8(%esi)
+ movl %edx,12(%esi)
+
+ movl 8(%edi),%eax
+ mull %eax
+ movl %eax,16(%esi)
+ movl %edx,20(%esi)
+
+ movl 12(%edi),%eax
+ mull %eax
+ movl %eax,24(%esi)
+ movl %edx,28(%esi)
+
+ movl 16(%edi),%eax
+ mull %eax
+ movl %eax,32(%esi)
+ movl %edx,36(%esi)
+
+ movl 20(%edi),%eax
+ mull %eax
+ movl %eax,40(%esi)
+ movl %edx,44(%esi)
+
+ movl 24(%edi),%eax
+ mull %eax
+ movl %eax,48(%esi)
+ movl %edx,52(%esi)
+
+ 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
+
+ movl (%edi),%eax
+ mull %eax
+ movl %eax,(%esi)
+ decl %ebx
+ movl %edx,4(%esi)
+ jz .L010sw_end
+
+ movl 4(%edi),%eax
+ mull %eax
+ movl %eax,8(%esi)
+ decl %ebx
+ movl %edx,12(%esi)
+ jz .L010sw_end
+
+ movl 8(%edi),%eax
+ mull %eax
+ movl %eax,16(%esi)
+ decl %ebx
+ movl %edx,20(%esi)
+ jz .L010sw_end
+
+ movl 12(%edi),%eax
+ mull %eax
+ movl %eax,24(%esi)
+ decl %ebx
+ movl %edx,28(%esi)
+ jz .L010sw_end
+
+ movl 16(%edi),%eax
+ mull %eax
+ movl %eax,32(%esi)
+ decl %ebx
+ movl %edx,36(%esi)
+ jz .L010sw_end
+
+ movl 20(%edi),%eax
+ mull %eax
+ movl %eax,40(%esi)
+ decl %ebx
+ movl %edx,44(%esi)
+ jz .L010sw_end
+
+ 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
+.size bn_sqr_words,.-.L_bn_sqr_words_begin
+.globl bn_div_words
+.type bn_div_words,@function
+.align 16
+bn_div_words:
+.L_bn_div_words_begin:
+ pushl %ebp
+ pushl %ebx
+ pushl %esi
+ pushl %edi
+ movl 20(%esp),%edx
+ movl 24(%esp),%eax
+ movl 28(%esp),%ebx
+ divl %ebx
+ popl %edi
+ popl %esi
+ popl %ebx
+ popl %ebp
+ ret
+.size bn_div_words,.-.L_bn_div_words_begin
+.globl bn_add_words
+.type bn_add_words,@function
+.align 16
+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:
+
+ movl (%esi),%ecx
+ movl (%edi),%edx
+ addl %eax,%ecx
+ movl $0,%eax
+ adcl %eax,%eax
+ addl %edx,%ecx
+ adcl $0,%eax
+ movl %ecx,(%ebx)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size bn_add_words,.-.L_bn_add_words_begin
+.globl bn_sub_words
+.type bn_sub_words,@function
+.align 16
+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:
+
+ movl (%esi),%ecx
+ movl (%edi),%edx
+ subl %eax,%ecx
+ movl $0,%eax
+ adcl %eax,%eax
+ subl %edx,%ecx
+ adcl $0,%eax
+ movl %ecx,(%ebx)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+.size bn_sub_words,.-.L_bn_sub_words_begin
+.globl bn_mul_comba8
+.type bn_mul_comba8,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 4(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl (%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 4(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 4(%esi),%eax
+ adcl %edx,%ecx
+ movl 8(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl (%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 12(%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 8(%esi),%eax
+ adcl %edx,%ebp
+ movl 8(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 4(%esi),%eax
+ adcl %edx,%ebp
+ movl 12(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 16(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 16(%esi),%eax
+ adcl %edx,%ebx
+ movl 4(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 12(%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 8(%esi),%eax
+ adcl %edx,%ebx
+ movl 12(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 16(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl (%esi),%eax
+ adcl %edx,%ebx
+ movl 20(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esi),%eax
+ adcl %edx,%ecx
+ movl 4(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 16(%esi),%eax
+ adcl %edx,%ecx
+ movl 8(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 12(%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 16(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 4(%esi),%eax
+ adcl %edx,%ecx
+ movl 20(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl (%esi),%eax
+ adcl %edx,%ecx
+ movl 24(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 24(%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 20(%esi),%eax
+ adcl %edx,%ebp
+ movl 8(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 16(%esi),%eax
+ adcl %edx,%ebp
+ movl 12(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 12(%esi),%eax
+ adcl %edx,%ebp
+ movl 16(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 8(%esi),%eax
+ adcl %edx,%ebp
+ movl 20(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 4(%esi),%eax
+ adcl %edx,%ebp
+ movl 24(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 28(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 24(%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 20(%esi),%eax
+ adcl %edx,%ebx
+ movl 12(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 16(%esi),%eax
+ adcl %edx,%ebx
+ movl 16(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 12(%esi),%eax
+ adcl %edx,%ebx
+ movl 20(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 8(%esi),%eax
+ adcl %edx,%ebx
+ movl 24(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 28(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 24(%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esi),%eax
+ adcl %edx,%ecx
+ movl 16(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 16(%esi),%eax
+ adcl %edx,%ecx
+ movl 20(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 12(%esi),%eax
+ adcl %edx,%ecx
+ movl 24(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 28(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 24(%esi),%eax
+ adcl %edx,%ebp
+ movl 16(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 20(%esi),%eax
+ adcl %edx,%ebp
+ movl 20(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 16(%esi),%eax
+ adcl %edx,%ebp
+ movl 24(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 12(%esi),%eax
+ adcl %edx,%ebp
+ movl 28(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 24(%esi),%eax
+ adcl %edx,%ebx
+ movl 20(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 20(%esi),%eax
+ adcl %edx,%ebx
+ movl 24(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 16(%esi),%eax
+ adcl %edx,%ebx
+ movl 28(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 24(%esi),%eax
+ adcl %edx,%ecx
+ movl 24(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esi),%eax
+ adcl %edx,%ecx
+ movl 28(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 24(%esi),%eax
+ adcl %edx,%ebp
+ movl 28(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 20(%esp),%eax
+ adcl %edx,%ebx
+ adcl $0,%ecx
+ movl %ebp,56(%eax)
+
+
+ movl %ebx,60(%eax)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_mul_comba8,.-.L_bn_mul_comba8_begin
+.globl bn_mul_comba4
+.type bn_mul_comba4,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl (%esi),%eax
+ adcl %edx,%ebp
+ movl 4(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 4(%esi),%eax
+ adcl %edx,%ebx
+ movl 4(%edi),%edx
+ adcl $0,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl (%esi),%eax
+ adcl %edx,%ebx
+ movl 8(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 8(%esi),%eax
+ adcl %edx,%ecx
+ movl 4(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 4(%esi),%eax
+ adcl %edx,%ecx
+ movl 8(%edi),%edx
+ adcl $0,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl (%esi),%eax
+ adcl %edx,%ecx
+ movl 12(%edi),%edx
+ adcl $0,%ebp
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 8(%esi),%eax
+ adcl %edx,%ebp
+ movl 8(%edi),%edx
+ adcl $0,%ebx
+
+ mull %edx
+ addl %eax,%ecx
+ movl 4(%esi),%eax
+ adcl %edx,%ebp
+ movl 12(%edi),%edx
+ adcl $0,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%ebp
+ movl 8(%esi),%eax
+ adcl %edx,%ebx
+ movl 12(%edi),%edx
+ adcl $0,%ecx
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%ebx
+ movl 20(%esp),%eax
+ adcl %edx,%ecx
+ adcl $0,%ebp
+ movl %ebx,24(%eax)
+
+
+ movl %ecx,28(%eax)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_mul_comba4,.-.L_bn_mul_comba4_begin
+.globl bn_sqr_comba8
+.type bn_sqr_comba8,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl (%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,(%edi)
+ movl 4(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ecx
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 4(%esi),%eax
+ adcl $0,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl (%esi),%edx
+ adcl $0,%ecx
+ movl %ebp,8(%edi)
+ movl 12(%esi),%eax
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebx
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 8(%esi),%eax
+ adcl $0,%ebx
+
+ mull %eax
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl (%esi),%edx
+ adcl $0,%ebx
+ movl %ecx,16(%edi)
+ movl 20(%esi),%eax
+
+
+ xorl %ecx,%ecx
+
+ 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
+
+ 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
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebp
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl 12(%esi),%eax
+ adcl $0,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl (%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,24(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ 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
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ecx
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 16(%esi),%eax
+ adcl $0,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 8(%esi),%edx
+ adcl $0,%ecx
+ movl %ebp,32(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebx
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 20(%esi),%eax
+ adcl $0,%ebx
+
+ mull %eax
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 16(%esi),%edx
+ adcl $0,%ebx
+ movl %ecx,40(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ecx,%ecx
+
+ 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
+
+ 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
+
+
+ xorl %ebp,%ebp
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebp
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl 24(%esi),%eax
+ adcl $0,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl 24(%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,48(%edi)
+ movl 28(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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)
+
+
+ xorl %ecx,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ adcl $0,%ecx
+ movl %ebp,56(%edi)
+
+ movl %ebx,60(%edi)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_sqr_comba8,.-.L_bn_sqr_comba8_begin
+.globl bn_sqr_comba4
+.type bn_sqr_comba4,@function
+.align 16
+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
+
+ xorl %ebp,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ movl (%esi),%edx
+ adcl $0,%ebp
+ movl %ebx,(%edi)
+ movl 4(%esi),%eax
+
+
+ xorl %ebx,%ebx
+
+ 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
+
+
+ xorl %ecx,%ecx
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ecx
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl 4(%esi),%eax
+ adcl $0,%ecx
+
+ mull %eax
+ addl %eax,%ebp
+ adcl %edx,%ebx
+ movl (%esi),%edx
+ adcl $0,%ecx
+ movl %ebp,8(%edi)
+ movl 12(%esi),%eax
+
+
+ xorl %ebp,%ebp
+
+ 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
+
+ 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
+
+
+ xorl %ebx,%ebx
+
+ mull %edx
+ addl %eax,%eax
+ adcl %edx,%edx
+ adcl $0,%ebx
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 8(%esi),%eax
+ adcl $0,%ebx
+
+ mull %eax
+ addl %eax,%ecx
+ adcl %edx,%ebp
+ movl 8(%esi),%edx
+ adcl $0,%ebx
+ movl %ecx,16(%edi)
+ movl 12(%esi),%eax
+
+
+ xorl %ecx,%ecx
+
+ 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)
+
+
+ xorl %ebp,%ebp
+
+ mull %eax
+ addl %eax,%ebx
+ adcl %edx,%ecx
+ adcl $0,%ebp
+ movl %ebx,24(%edi)
+
+ movl %ecx,28(%edi)
+ popl %ebx
+ popl %ebp
+ popl %edi
+ popl %esi
+ ret
+.size bn_sqr_comba4,.-.L_bn_sqr_comba4_begin