Re-add the hand-optimised assembler versions of some of the ciphers

to the build.

Should have done this ages ago:	markm
Reminded above to do this:	peter
This commit is contained in:
Mark Murray 2004-03-23 08:32:29 +00:00
parent b1e9afabe1
commit f3d90904b0
14 changed files with 3433 additions and 4331 deletions

View File

@ -42,7 +42,16 @@ SRCS+= a_bitstr.c a_bool.c a_bytes.c a_d2i_fp.c a_digest.c \
INCS+= asn1.h asn1_mac.h asn1t.h
# bf
SRCS+= bf_cfb64.c bf_ecb.c bf_enc.c bf_ofb64.c bf_skey.c
SRCS+= bf_cfb64.c bf_ecb.c bf_ofb64.c bf_skey.c
.if ${MACHINE_ARCH} == "i386"
.if ${MACHINE_CPU:Mi686}
SRCS+= bf-686.s
.else
SRCS+= bf-586.s
.endif
.else
SRCS+= bf_enc.c
.endif
INCS+= blowfish.h
# bio
@ -53,10 +62,16 @@ SRCS+= b_dump.c b_print.c b_sock.c bf_buff.c bf_lbuf.c bf_nbio.c \
INCS+= bio.h
# bn
SRCS+= bn_add.c bn_asm.c bn_blind.c bn_ctx.c bn_div.c bn_err.c bn_exp.c \
SRCS+= bn_add.c bn_blind.c bn_ctx.c bn_div.c bn_err.c bn_exp.c \
bn_exp2.c bn_gcd.c bn_kron.c bn_lib.c bn_mod.c bn_mont.c \
bn_mpi.c bn_mul.c bn_prime.c bn_print.c bn_rand.c bn_recp.c \
bn_shift.c bn_sqr.c bn_sqrt.c bn_word.c
.if ${MACHINE_ARCH} == "i386"
SRCS+= bn-586.s co-586.s
.else
SRCS+= bn_asm.c
.endif
INCS+= bn.h
# buffer
@ -64,7 +79,12 @@ SRCS+= buf_err.c buffer.c
INCS+= buffer.h
# cast
SRCS+= c_cfb64.c c_ecb.c c_enc.c c_ofb64.c c_skey.c
SRCS+= c_cfb64.c c_ecb.c c_ofb64.c c_skey.c
.if ${MACHINE_ARCH} == "i386"
SRCS+= cast-586.s
.else
SRCS+= c_enc.c
.endif
INCS+= cast.h
# comp
@ -77,10 +97,15 @@ INCS+= conf.h conf_api.h
# des
SRCS+= cbc3_enc.c cbc_cksm.c cbc_enc.c cfb64ede.c cfb64enc.c cfb_enc.c \
des_enc.c des_old.c des_old2.c ecb3_enc.c ecb_enc.c ede_cbcm_enc.c \
enc_read.c enc_writ.c fcrypt.c fcrypt_b.c ofb64ede.c ofb64enc.c \
des_old.c des_old2.c ecb3_enc.c ecb_enc.c ede_cbcm_enc.c \
enc_read.c enc_writ.c fcrypt.c ofb64ede.c ofb64enc.c \
ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read2pwd.c \
rpc_enc.c set_key.c str2key.c xcbc_enc.c
.if ${MACHINE_ARCH} == "i386"
SRCS+= des-586.s crypt586.s
.else
SRCS+= des_enc.c fcrypt_b.c
.endif
INCS+= des.h des_old.h
# dh
@ -126,6 +151,7 @@ SRCS+= bio_b64.c bio_enc.c bio_md.c bio_ok.c c_all.c c_allc.c c_alld.c \
m_ripemd.c m_sha.c m_sha1.c names.c openbsd_hw.c p5_crpt.c \
p5_crpt2.c p_dec.c p_enc.c p_lib.c p_open.c p_seal.c p_sign.c \
p_verify.c
INCS+= evp.h
# hmac
SRCS+= hmac.c
@ -155,6 +181,9 @@ INCS+= md4.h
# md5
SRCS+= md5_dgst.c md5_one.c
.if ${MACHINE_ARCH} == "i386"
SRCS+= md5-586.s
.endif
INCS+= md5.h
# mdc2
@ -194,11 +223,21 @@ SRCS+= rc2_cbc.c rc2_ecb.c rc2_skey.c rc2cfb64.c rc2ofb64.c
INCS+= rc2.h
# rc4
SRCS+= rc4_enc.c rc4_skey.c
SRCS+= rc4_skey.c
.if ${MACHINE_ARCH} == "i386"
SRCS+= rc4-586.s
.else
SRCS+= rc4_enc.c
.endif
INCS+= rc4.h
# rc5
SRCS+= rc5_ecb.c rc5_enc.c rc5_skey.c rc5cfb64.c rc5ofb64.c
SRCS+= rc5_ecb.c rc5_skey.c rc5cfb64.c rc5ofb64.c
.if ${MACHINE_ARCH} == "i386"
SRCS+= rc5-586.s
.else
SRCS+= rc5_enc.c
.endif
INCS+= rc5.h
# ripemd
@ -213,6 +252,9 @@ INCS+= rsa.h
# sha
SRCS+= sha1_one.c sha1dgst.c sha_dgst.c sha_one.c
.if ${MACHINE_ARCH} == "i386"
SRCS+= sha1-586.s
.endif
INCS+= sha.h
# stack
@ -281,6 +323,10 @@ afterinstall:
.include <bsd.lib.mk>
.if ${MACHINE_ARCH} == "i386"
.PATH: ${.CURDIR}/i386
.endif
.if defined(MAKE_IDEA) && ${MAKE_IDEA} == YES
_ideapath= ${LCRYPTO_SRC}/crypto/idea
.endif

View File

@ -2,7 +2,7 @@
# Use this to help generate the asm *.s files after an import. It is not
# perfect by any means, but does what is needed.
# Do a 'make -f Makefile.asm all' and it will generate *.s. Move them
# to the i386 subdir, and correct any exposed paths and $FreeBSD$ tags.
# to the i386 subdir, and correct any exposed paths and $ FreeBSD $ tags.
.if ${MACHINE_ARCH} == "i386"
@ -51,7 +51,8 @@ CLEANFILES+= ${SRCS:M*.pl:S/.pl$/.cmt/} ${SRCS:M*.pl:S/.pl$/.s/}
.SUFFIXES: .pl .cmt
.pl.cmt:
perl -I${PERLPATH} ${.IMPSRC} elf ${CPUTYPE:Mi386:S/i//} > ${.TARGET}
( echo ' # $$'FreeBSD'$$' ;\
perl -I${PERLPATH} ${.IMPSRC} elf ${CPUTYPE:Mi386:S/i//} ) > ${.TARGET}
.cmt.s:
tr -d "'" < ${.IMPSRC} > ${.TARGET}

View File

@ -1,9 +1,9 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by bf-586.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "bf-586.s"
.version "01.01"
@ -20,7 +20,7 @@ BF_encrypt:
movl 16(%esp), %ebp
pushl %esi
pushl %edi
# Load the 2 words
movl (%ebx), %edi
movl 4(%ebx), %esi
xorl %eax, %eax
@ -28,7 +28,7 @@ BF_encrypt:
xorl %ecx, %ecx
xorl %ebx, %edi
# Round 0
movl 4(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -48,7 +48,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 1
movl 8(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -68,7 +68,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 2
movl 12(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -88,7 +88,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 3
movl 16(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -108,7 +108,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 4
movl 20(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -128,7 +128,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 5
movl 24(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -148,7 +148,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 6
movl 28(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -168,7 +168,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 7
movl 32(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -188,7 +188,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 8
movl 36(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -208,7 +208,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 9
movl 40(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -228,7 +228,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 10
movl 44(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -248,7 +248,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 11
movl 48(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -268,7 +268,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 12
movl 52(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -288,7 +288,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 13
movl 56(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -308,7 +308,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 14
movl 60(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -328,7 +328,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 15
movl 64(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -345,7 +345,7 @@ BF_encrypt:
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
@ -357,8 +357,8 @@ BF_encrypt:
popl %ebx
popl %ebp
ret
.BF_encrypt_end:
.size BF_encrypt,.BF_encrypt_end-BF_encrypt
.L_BF_encrypt_end:
.size BF_encrypt,.L_BF_encrypt_end-BF_encrypt
.ident "BF_encrypt"
.text
.align 16
@ -372,7 +372,7 @@ BF_decrypt:
movl 16(%esp), %ebp
pushl %esi
pushl %edi
# Load the 2 words
movl (%ebx), %edi
movl 4(%ebx), %esi
xorl %eax, %eax
@ -380,7 +380,7 @@ BF_decrypt:
xorl %ecx, %ecx
xorl %ebx, %edi
# Round 16
movl 64(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -400,7 +400,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 15
movl 60(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -420,7 +420,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 14
movl 56(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -440,7 +440,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 13
movl 52(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -460,7 +460,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 12
movl 48(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -480,7 +480,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 11
movl 44(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -500,7 +500,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 10
movl 40(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -520,7 +520,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 9
movl 36(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -540,7 +540,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 8
movl 32(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -560,7 +560,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 7
movl 28(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -580,7 +580,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 6
movl 24(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -600,7 +600,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 5
movl 20(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -620,7 +620,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 4
movl 16(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -640,7 +640,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 3
movl 12(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -660,7 +660,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
# Round 2
movl 8(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@ -680,7 +680,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
# Round 1
movl 4(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@ -697,7 +697,7 @@ BF_decrypt:
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
@ -709,8 +709,8 @@ BF_decrypt:
popl %ebx
popl %ebp
ret
.BF_decrypt_end:
.size BF_decrypt,.BF_decrypt_end-BF_decrypt
.L_BF_decrypt_end:
.size BF_decrypt,.L_BF_decrypt_end-BF_decrypt
.ident "BF_decrypt"
.text
.align 16
@ -723,7 +723,7 @@ BF_cbc_encrypt:
pushl %esi
pushl %edi
movl 28(%esp), %ebp
# getting iv ptr from parameter 4
movl 36(%esp), %ebx
movl (%ebx), %esi
movl 4(%ebx), %edi
@ -734,9 +734,9 @@ BF_cbc_encrypt:
movl %esp, %ebx
movl 36(%esp), %esi
movl 40(%esp), %edi
# getting encrypt flag from parameter 5
movl 56(%esp), %ecx
# get and push parameter 3
movl 48(%esp), %eax
pushl %eax
pushl %ebx
@ -752,18 +752,18 @@ BF_cbc_encrypt:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
addl $8, %esi
@ -774,43 +774,48 @@ BF_cbc_encrypt:
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
movl .L004cbc_enc_jmp_table(,%ebp,4),%ebp
jmp *%ebp
.L005ej7:
.L006ej7:
movb 6(%esi), %dh
sall $8, %edx
.L006ej6:
.L007ej6:
movb 5(%esi), %dh
.L007ej5:
.L008ej5:
movb 4(%esi), %dl
.L008ej4:
.L009ej4:
movl (%esi), %ecx
jmp .L009ejend
.L010ej3:
jmp .L010ejend
.L011ej3:
movb 2(%esi), %ch
sall $8, %ecx
.L011ej2:
.L012ej2:
movb 1(%esi), %ch
.L012ej1:
.L013ej1:
movb (%esi), %cl
.L009ejend:
.L010ejend:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
jmp .L003finish
@ -819,23 +824,23 @@ BF_cbc_encrypt:
andl $4294967288, %ebp
movl 16(%esp), %eax
movl 20(%esp), %ebx
jz .L013decrypt_finish
.L014decrypt_loop:
jz .L014decrypt_finish
.L015decrypt_loop:
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
@ -849,52 +854,52 @@ BF_cbc_encrypt:
addl $8, %esi
addl $8, %edi
subl $8, %ebp
jnz .L014decrypt_loop
.L013decrypt_finish:
jnz .L015decrypt_loop
.L014decrypt_finish:
movl 52(%esp), %ebp
andl $7, %ebp
jz .L003finish
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
xorl %ebx, %edx
movl (%esi), %eax
movl 4(%esi), %ebx
.L015dj7:
.L016dj7:
rorl $16, %edx
movb %dl, 6(%edi)
shrl $16, %edx
.L016dj6:
.L017dj6:
movb %dh, 5(%edi)
.L017dj5:
.L018dj5:
movb %dl, 4(%edi)
.L018dj4:
.L019dj4:
movl %ecx, (%edi)
jmp .L019djend
.L020dj3:
jmp .L020djend
.L021dj3:
rorl $16, %ecx
movb %cl, 2(%edi)
sall $16, %ecx
.L021dj2:
.L022dj2:
movb %ch, 1(%esi)
.L022dj1:
.L023dj1:
movb %cl, (%esi)
.L019djend:
.L020djend:
jmp .L003finish
.align 16
.L003finish:
@ -908,25 +913,15 @@ BF_cbc_encrypt:
popl %ebp
ret
.align 16
.L004cbc_enc_jmp_table:
.L005cbc_enc_jmp_table:
.long 0
.long .L012ej1
.long .L011ej2
.long .L010ej3
.long .L008ej4
.long .L007ej5
.long .L006ej6
.long .L005ej7
.align 16
.L023cbc_dec_jmp_table:
.long 0
.long .L022dj1
.long .L021dj2
.long .L020dj3
.long .L018dj4
.long .L017dj5
.long .L016dj6
.long .L015dj7
.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
.L_BF_cbc_encrypt_end:
.size BF_cbc_encrypt,.L_BF_cbc_encrypt_end-BF_cbc_encrypt
.ident "desasm.pl"

View File

@ -1,9 +1,9 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by bf-686.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "bf-686.s"
.version "01.01"
@ -19,18 +19,18 @@ BF_encrypt:
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
@ -49,7 +49,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 1
rorl $16, %edx
movl 8(%edi), %esi
movb %dh, %al
@ -68,7 +68,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 2
rorl $16, %ecx
movl 12(%edi), %esi
movb %ch, %al
@ -87,7 +87,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 3
rorl $16, %edx
movl 16(%edi), %esi
movb %dh, %al
@ -106,7 +106,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 4
rorl $16, %ecx
movl 20(%edi), %esi
movb %ch, %al
@ -125,7 +125,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 5
rorl $16, %edx
movl 24(%edi), %esi
movb %dh, %al
@ -144,7 +144,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 6
rorl $16, %ecx
movl 28(%edi), %esi
movb %ch, %al
@ -163,7 +163,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 7
rorl $16, %edx
movl 32(%edi), %esi
movb %dh, %al
@ -182,7 +182,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 8
rorl $16, %ecx
movl 36(%edi), %esi
movb %ch, %al
@ -201,7 +201,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 9
rorl $16, %edx
movl 40(%edi), %esi
movb %dh, %al
@ -220,7 +220,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 10
rorl $16, %ecx
movl 44(%edi), %esi
movb %ch, %al
@ -239,7 +239,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 11
rorl $16, %edx
movl 48(%edi), %esi
movb %dh, %al
@ -258,7 +258,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 12
rorl $16, %ecx
movl 52(%edi), %esi
movb %ch, %al
@ -277,7 +277,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 13
rorl $16, %edx
movl 56(%edi), %esi
movb %dh, %al
@ -296,7 +296,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 14
rorl $16, %ecx
movl 60(%edi), %esi
movb %ch, %al
@ -315,7 +315,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 15
rorl $16, %edx
movl 64(%edi), %esi
movb %dh, %al
@ -356,18 +356,18 @@ BF_decrypt:
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
@ -386,7 +386,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 15
rorl $16, %edx
movl 60(%edi), %esi
movb %dh, %al
@ -405,7 +405,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 14
rorl $16, %ecx
movl 56(%edi), %esi
movb %ch, %al
@ -424,7 +424,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 13
rorl $16, %edx
movl 52(%edi), %esi
movb %dh, %al
@ -443,7 +443,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 12
rorl $16, %ecx
movl 48(%edi), %esi
movb %ch, %al
@ -462,7 +462,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 11
rorl $16, %edx
movl 44(%edi), %esi
movb %dh, %al
@ -481,7 +481,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 10
rorl $16, %ecx
movl 40(%edi), %esi
movb %ch, %al
@ -500,7 +500,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 9
rorl $16, %edx
movl 36(%edi), %esi
movb %dh, %al
@ -519,7 +519,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 8
rorl $16, %ecx
movl 32(%edi), %esi
movb %ch, %al
@ -538,7 +538,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 7
rorl $16, %edx
movl 28(%edi), %esi
movb %dh, %al
@ -557,7 +557,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 6
rorl $16, %ecx
movl 24(%edi), %esi
movb %ch, %al
@ -576,7 +576,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 5
rorl $16, %edx
movl 20(%edi), %esi
movb %dh, %al
@ -595,7 +595,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 4
rorl $16, %ecx
movl 16(%edi), %esi
movb %ch, %al
@ -614,7 +614,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 3
rorl $16, %edx
movl 12(%edi), %esi
movb %dh, %al
@ -633,7 +633,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %ecx
# Round 2
rorl $16, %ecx
movl 8(%edi), %esi
movb %ch, %al
@ -652,7 +652,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %esi, %edx
# Round 1
rorl $16, %edx
movl 4(%edi), %esi
movb %dh, %al
@ -693,7 +693,7 @@ BF_cbc_encrypt:
pushl %esi
pushl %edi
movl 28(%esp), %ebp
# getting iv ptr from parameter 4
movl 36(%esp), %ebx
movl (%ebx), %esi
movl 4(%ebx), %edi
@ -704,9 +704,9 @@ BF_cbc_encrypt:
movl %esp, %ebx
movl 36(%esp), %esi
movl 40(%esp), %edi
# getting encrypt flag from parameter 5
movl 56(%esp), %ecx
# get and push parameter 3
movl 48(%esp), %eax
pushl %eax
pushl %ebx
@ -722,18 +722,18 @@ BF_cbc_encrypt:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
addl $8, %esi
@ -744,43 +744,48 @@ BF_cbc_encrypt:
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
movl .L004cbc_enc_jmp_table(,%ebp,4),%ebp
jmp *%ebp
.L005ej7:
.L006ej7:
movb 6(%esi), %dh
sall $8, %edx
.L006ej6:
.L007ej6:
movb 5(%esi), %dh
.L007ej5:
.L008ej5:
movb 4(%esi), %dl
.L008ej4:
.L009ej4:
movl (%esi), %ecx
jmp .L009ejend
.L010ej3:
jmp .L010ejend
.L011ej3:
movb 2(%esi), %ch
sall $8, %ecx
.L011ej2:
.L012ej2:
movb 1(%esi), %ch
.L012ej1:
.L013ej1:
movb (%esi), %cl
.L009ejend:
.L010ejend:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
jmp .L003finish
@ -789,23 +794,23 @@ BF_cbc_encrypt:
andl $4294967288, %ebp
movl 16(%esp), %eax
movl 20(%esp), %ebx
jz .L013decrypt_finish
.L014decrypt_loop:
jz .L014decrypt_finish
.L015decrypt_loop:
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
@ -819,52 +824,52 @@ BF_cbc_encrypt:
addl $8, %esi
addl $8, %edi
subl $8, %ebp
jnz .L014decrypt_loop
.L013decrypt_finish:
jnz .L015decrypt_loop
.L014decrypt_finish:
movl 52(%esp), %ebp
andl $7, %ebp
jz .L003finish
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
xorl %ebx, %edx
movl (%esi), %eax
movl 4(%esi), %ebx
.L015dj7:
.L016dj7:
rorl $16, %edx
movb %dl, 6(%edi)
shrl $16, %edx
.L016dj6:
.L017dj6:
movb %dh, 5(%edi)
.L017dj5:
.L018dj5:
movb %dl, 4(%edi)
.L018dj4:
.L019dj4:
movl %ecx, (%edi)
jmp .L019djend
.L020dj3:
jmp .L020djend
.L021dj3:
rorl $16, %ecx
movb %cl, 2(%edi)
sall $16, %ecx
.L021dj2:
.L022dj2:
movb %ch, 1(%esi)
.L022dj1:
.L023dj1:
movb %cl, (%esi)
.L019djend:
.L020djend:
jmp .L003finish
.align 16
.L003finish:
@ -878,25 +883,15 @@ BF_cbc_encrypt:
popl %ebp
ret
.align 16
.L004cbc_enc_jmp_table:
.L005cbc_enc_jmp_table:
.long 0
.long .L012ej1
.long .L011ej2
.long .L010ej3
.long .L008ej4
.long .L007ej5
.long .L006ej6
.long .L005ej7
.align 16
.L023cbc_dec_jmp_table:
.long 0
.long .L022dj1
.long .L021dj2
.long .L020dj3
.long .L018dj4
.long .L017dj5
.long .L016dj6
.long .L015dj7
.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
.L_BF_cbc_encrypt_end:
.size BF_cbc_encrypt,.L_BF_cbc_encrypt_end-BF_cbc_encrypt
.ident "desasm.pl"

View File

@ -1,11 +1,11 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by bn-586.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "bn-586.s"
.file "/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bn/asm/bn-586.s"
.version "01.01"
gcc2_compiled.:
.text
@ -29,7 +29,7 @@ bn_mul_add_words:
jz .L000maw_finish
.L001maw_loop:
movl %ecx, (%esp)
# Round 0
movl (%ebx), %eax
mull %ebp
addl %esi, %eax
@ -39,7 +39,7 @@ bn_mul_add_words:
adcl $0, %edx
movl %eax, (%edi)
movl %edx, %esi
# Round 4
movl 4(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -49,7 +49,7 @@ bn_mul_add_words:
adcl $0, %edx
movl %eax, 4(%edi)
movl %edx, %esi
# Round 8
movl 8(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -59,7 +59,7 @@ bn_mul_add_words:
adcl $0, %edx
movl %eax, 8(%edi)
movl %edx, %esi
# Round 12
movl 12(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -69,7 +69,7 @@ bn_mul_add_words:
adcl $0, %edx
movl %eax, 12(%edi)
movl %edx, %esi
# Round 16
movl 16(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -79,7 +79,7 @@ bn_mul_add_words:
adcl $0, %edx
movl %eax, 16(%edi)
movl %edx, %esi
# Round 20
movl 20(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -89,7 +89,7 @@ bn_mul_add_words:
adcl $0, %edx
movl %eax, 20(%edi)
movl %edx, %esi
# Round 24
movl 24(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -99,7 +99,7 @@ bn_mul_add_words:
adcl $0, %edx
movl %eax, 24(%edi)
movl %edx, %esi
# Round 28
movl 28(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -122,7 +122,7 @@ bn_mul_add_words:
jmp .L003maw_end
.align 16
.L002maw_finish2:
# Tail Round 0
movl (%ebx), %eax
mull %ebp
addl %esi, %eax
@ -134,7 +134,7 @@ bn_mul_add_words:
movl %eax, (%edi)
movl %edx, %esi
jz .L003maw_end
# Tail Round 1
movl 4(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -146,7 +146,7 @@ bn_mul_add_words:
movl %eax, 4(%edi)
movl %edx, %esi
jz .L003maw_end
# Tail Round 2
movl 8(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -158,7 +158,7 @@ bn_mul_add_words:
movl %eax, 8(%edi)
movl %edx, %esi
jz .L003maw_end
# Tail Round 3
movl 12(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -170,7 +170,7 @@ bn_mul_add_words:
movl %eax, 12(%edi)
movl %edx, %esi
jz .L003maw_end
# Tail Round 4
movl 16(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -182,7 +182,7 @@ bn_mul_add_words:
movl %eax, 16(%edi)
movl %edx, %esi
jz .L003maw_end
# Tail Round 5
movl 20(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -194,7 +194,7 @@ bn_mul_add_words:
movl %eax, 20(%edi)
movl %edx, %esi
jz .L003maw_end
# Tail Round 6
movl 24(%ebx), %eax
mull %ebp
addl %esi, %eax
@ -212,8 +212,8 @@ bn_mul_add_words:
popl %ebx
popl %ebp
ret
.bn_mul_add_words_end:
.size bn_mul_add_words,.bn_mul_add_words_end-bn_mul_add_words
.L_bn_mul_add_words_end:
.size bn_mul_add_words,.L_bn_mul_add_words_end-bn_mul_add_words
.ident "bn_mul_add_words"
.text
.align 16
@ -234,56 +234,56 @@ bn_mul_words:
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
@ -303,7 +303,7 @@ bn_mul_words:
jmp .L007mw_end
.align 16
.L006mw_finish2:
# Tail Round 0
movl (%ebx), %eax
mull %ecx
addl %esi, %eax
@ -312,7 +312,7 @@ bn_mul_words:
movl %edx, %esi
decl %ebp
jz .L007mw_end
# Tail Round 1
movl 4(%ebx), %eax
mull %ecx
addl %esi, %eax
@ -321,7 +321,7 @@ bn_mul_words:
movl %edx, %esi
decl %ebp
jz .L007mw_end
# Tail Round 2
movl 8(%ebx), %eax
mull %ecx
addl %esi, %eax
@ -330,7 +330,7 @@ bn_mul_words:
movl %edx, %esi
decl %ebp
jz .L007mw_end
# Tail Round 3
movl 12(%ebx), %eax
mull %ecx
addl %esi, %eax
@ -339,7 +339,7 @@ bn_mul_words:
movl %edx, %esi
decl %ebp
jz .L007mw_end
# Tail Round 4
movl 16(%ebx), %eax
mull %ecx
addl %esi, %eax
@ -348,7 +348,7 @@ bn_mul_words:
movl %edx, %esi
decl %ebp
jz .L007mw_end
# Tail Round 5
movl 20(%ebx), %eax
mull %ecx
addl %esi, %eax
@ -357,7 +357,7 @@ bn_mul_words:
movl %edx, %esi
decl %ebp
jz .L007mw_end
# Tail Round 6
movl 24(%ebx), %eax
mull %ecx
addl %esi, %eax
@ -371,8 +371,8 @@ bn_mul_words:
popl %ebx
popl %ebp
ret
.bn_mul_words_end:
.size bn_mul_words,.bn_mul_words_end-bn_mul_words
.L_bn_mul_words_end:
.size bn_mul_words,.L_bn_mul_words_end-bn_mul_words
.ident "bn_mul_words"
.text
.align 16
@ -391,42 +391,42 @@ bn_sqr_words:
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)
@ -440,49 +440,49 @@ bn_sqr_words:
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)
@ -493,8 +493,8 @@ bn_sqr_words:
popl %ebx
popl %ebp
ret
.bn_sqr_words_end:
.size bn_sqr_words,.bn_sqr_words_end-bn_sqr_words
.L_bn_sqr_words_end:
.size bn_sqr_words,.L_bn_sqr_words_end-bn_sqr_words
.ident "bn_sqr_words"
.text
.align 16
@ -515,8 +515,8 @@ bn_div_words:
popl %ebx
popl %ebp
ret
.bn_div_words_end:
.size bn_div_words,.bn_div_words_end-bn_div_words
.L_bn_div_words_end:
.size bn_div_words,.L_bn_div_words_end-bn_div_words
.ident "bn_div_words"
.text
.align 16
@ -537,7 +537,7 @@ bn_add_words:
andl $4294967288, %ebp
jz .L011aw_finish
.L012aw_loop:
# Round 0
movl (%esi), %ecx
movl (%edi), %edx
addl %eax, %ecx
@ -546,7 +546,7 @@ bn_add_words:
addl %edx, %ecx
adcl $0, %eax
movl %ecx, (%ebx)
# Round 1
movl 4(%esi), %ecx
movl 4(%edi), %edx
addl %eax, %ecx
@ -555,7 +555,7 @@ bn_add_words:
addl %edx, %ecx
adcl $0, %eax
movl %ecx, 4(%ebx)
# Round 2
movl 8(%esi), %ecx
movl 8(%edi), %edx
addl %eax, %ecx
@ -564,7 +564,7 @@ bn_add_words:
addl %edx, %ecx
adcl $0, %eax
movl %ecx, 8(%ebx)
# Round 3
movl 12(%esi), %ecx
movl 12(%edi), %edx
addl %eax, %ecx
@ -573,7 +573,7 @@ bn_add_words:
addl %edx, %ecx
adcl $0, %eax
movl %ecx, 12(%ebx)
# Round 4
movl 16(%esi), %ecx
movl 16(%edi), %edx
addl %eax, %ecx
@ -582,7 +582,7 @@ bn_add_words:
addl %edx, %ecx
adcl $0, %eax
movl %ecx, 16(%ebx)
# Round 5
movl 20(%esi), %ecx
movl 20(%edi), %edx
addl %eax, %ecx
@ -591,7 +591,7 @@ bn_add_words:
addl %edx, %ecx
adcl $0, %eax
movl %ecx, 20(%ebx)
# Round 6
movl 24(%esi), %ecx
movl 24(%edi), %edx
addl %eax, %ecx
@ -600,7 +600,7 @@ bn_add_words:
addl %edx, %ecx
adcl $0, %eax
movl %ecx, 24(%ebx)
# Round 7
movl 28(%esi), %ecx
movl 28(%edi), %edx
addl %eax, %ecx
@ -619,7 +619,7 @@ bn_add_words:
movl 32(%esp), %ebp
andl $7, %ebp
jz .L013aw_end
# Tail Round 0
movl (%esi), %ecx
movl (%edi), %edx
addl %eax, %ecx
@ -630,7 +630,7 @@ bn_add_words:
decl %ebp
movl %ecx, (%ebx)
jz .L013aw_end
# Tail Round 1
movl 4(%esi), %ecx
movl 4(%edi), %edx
addl %eax, %ecx
@ -641,7 +641,7 @@ bn_add_words:
decl %ebp
movl %ecx, 4(%ebx)
jz .L013aw_end
# Tail Round 2
movl 8(%esi), %ecx
movl 8(%edi), %edx
addl %eax, %ecx
@ -652,7 +652,7 @@ bn_add_words:
decl %ebp
movl %ecx, 8(%ebx)
jz .L013aw_end
# Tail Round 3
movl 12(%esi), %ecx
movl 12(%edi), %edx
addl %eax, %ecx
@ -663,7 +663,7 @@ bn_add_words:
decl %ebp
movl %ecx, 12(%ebx)
jz .L013aw_end
# Tail Round 4
movl 16(%esi), %ecx
movl 16(%edi), %edx
addl %eax, %ecx
@ -674,7 +674,7 @@ bn_add_words:
decl %ebp
movl %ecx, 16(%ebx)
jz .L013aw_end
# Tail Round 5
movl 20(%esi), %ecx
movl 20(%edi), %edx
addl %eax, %ecx
@ -685,7 +685,7 @@ bn_add_words:
decl %ebp
movl %ecx, 20(%ebx)
jz .L013aw_end
# Tail Round 6
movl 24(%esi), %ecx
movl 24(%edi), %edx
addl %eax, %ecx
@ -700,8 +700,8 @@ bn_add_words:
popl %ebx
popl %ebp
ret
.bn_add_words_end:
.size bn_add_words,.bn_add_words_end-bn_add_words
.L_bn_add_words_end:
.size bn_add_words,.L_bn_add_words_end-bn_add_words
.ident "bn_add_words"
.text
.align 16
@ -722,7 +722,7 @@ bn_sub_words:
andl $4294967288, %ebp
jz .L014aw_finish
.L015aw_loop:
# Round 0
movl (%esi), %ecx
movl (%edi), %edx
subl %eax, %ecx
@ -731,7 +731,7 @@ bn_sub_words:
subl %edx, %ecx
adcl $0, %eax
movl %ecx, (%ebx)
# Round 1
movl 4(%esi), %ecx
movl 4(%edi), %edx
subl %eax, %ecx
@ -740,7 +740,7 @@ bn_sub_words:
subl %edx, %ecx
adcl $0, %eax
movl %ecx, 4(%ebx)
# Round 2
movl 8(%esi), %ecx
movl 8(%edi), %edx
subl %eax, %ecx
@ -749,7 +749,7 @@ bn_sub_words:
subl %edx, %ecx
adcl $0, %eax
movl %ecx, 8(%ebx)
# Round 3
movl 12(%esi), %ecx
movl 12(%edi), %edx
subl %eax, %ecx
@ -758,7 +758,7 @@ bn_sub_words:
subl %edx, %ecx
adcl $0, %eax
movl %ecx, 12(%ebx)
# Round 4
movl 16(%esi), %ecx
movl 16(%edi), %edx
subl %eax, %ecx
@ -767,7 +767,7 @@ bn_sub_words:
subl %edx, %ecx
adcl $0, %eax
movl %ecx, 16(%ebx)
# Round 5
movl 20(%esi), %ecx
movl 20(%edi), %edx
subl %eax, %ecx
@ -776,7 +776,7 @@ bn_sub_words:
subl %edx, %ecx
adcl $0, %eax
movl %ecx, 20(%ebx)
# Round 6
movl 24(%esi), %ecx
movl 24(%edi), %edx
subl %eax, %ecx
@ -785,7 +785,7 @@ bn_sub_words:
subl %edx, %ecx
adcl $0, %eax
movl %ecx, 24(%ebx)
# Round 7
movl 28(%esi), %ecx
movl 28(%edi), %edx
subl %eax, %ecx
@ -804,7 +804,7 @@ bn_sub_words:
movl 32(%esp), %ebp
andl $7, %ebp
jz .L016aw_end
# Tail Round 0
movl (%esi), %ecx
movl (%edi), %edx
subl %eax, %ecx
@ -815,7 +815,7 @@ bn_sub_words:
decl %ebp
movl %ecx, (%ebx)
jz .L016aw_end
# Tail Round 1
movl 4(%esi), %ecx
movl 4(%edi), %edx
subl %eax, %ecx
@ -826,7 +826,7 @@ bn_sub_words:
decl %ebp
movl %ecx, 4(%ebx)
jz .L016aw_end
# Tail Round 2
movl 8(%esi), %ecx
movl 8(%edi), %edx
subl %eax, %ecx
@ -837,7 +837,7 @@ bn_sub_words:
decl %ebp
movl %ecx, 8(%ebx)
jz .L016aw_end
# Tail Round 3
movl 12(%esi), %ecx
movl 12(%edi), %edx
subl %eax, %ecx
@ -848,7 +848,7 @@ bn_sub_words:
decl %ebp
movl %ecx, 12(%ebx)
jz .L016aw_end
# Tail Round 4
movl 16(%esi), %ecx
movl 16(%edi), %edx
subl %eax, %ecx
@ -859,7 +859,7 @@ bn_sub_words:
decl %ebp
movl %ecx, 16(%ebx)
jz .L016aw_end
# Tail Round 5
movl 20(%esi), %ecx
movl 20(%edi), %edx
subl %eax, %ecx
@ -870,7 +870,7 @@ bn_sub_words:
decl %ebp
movl %ecx, 20(%ebx)
jz .L016aw_end
# Tail Round 6
movl 24(%esi), %ecx
movl 24(%edi), %edx
subl %eax, %ecx
@ -885,6 +885,6 @@ bn_sub_words:
popl %ebx
popl %ebp
ret
.bn_sub_words_end:
.size bn_sub_words,.bn_sub_words_end-bn_sub_words
.L_bn_sub_words_end:
.size bn_sub_words,.L_bn_sub_words_end-bn_sub_words
.ident "bn_sub_words"

View File

@ -1,9 +1,9 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by cast-586.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "cast-586.s"
.version "01.01"
@ -20,14 +20,14 @@ CAST_encrypt:
movl 16(%esp), %ebp
pushl %esi
pushl %edi
# Load the 2 words
movl (%ebx), %edi
movl 4(%ebx), %esi
# Get short key flag
movl 128(%ebp), %eax
pushl %eax
xorl %eax, %eax
# round 0
movl (%ebp), %edx
movl 4(%ebp), %ecx
addl %esi, %edx
@ -48,7 +48,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %edi
# round 1
movl 8(%ebp), %edx
movl 12(%ebp), %ecx
xorl %edi, %edx
@ -69,7 +69,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %esi
# round 2
movl 16(%ebp), %edx
movl 20(%ebp), %ecx
subl %esi, %edx
@ -90,7 +90,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %edi
# round 3
movl 24(%ebp), %edx
movl 28(%ebp), %ecx
addl %edi, %edx
@ -111,7 +111,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %esi
# round 4
movl 32(%ebp), %edx
movl 36(%ebp), %ecx
xorl %esi, %edx
@ -132,7 +132,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %edi
# round 5
movl 40(%ebp), %edx
movl 44(%ebp), %ecx
subl %edi, %edx
@ -153,7 +153,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %esi
# round 6
movl 48(%ebp), %edx
movl 52(%ebp), %ecx
addl %esi, %edx
@ -174,7 +174,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %edi
# round 7
movl 56(%ebp), %edx
movl 60(%ebp), %ecx
xorl %edi, %edx
@ -195,7 +195,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %esi
# round 8
movl 64(%ebp), %edx
movl 68(%ebp), %ecx
subl %esi, %edx
@ -216,7 +216,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %edi
# round 9
movl 72(%ebp), %edx
movl 76(%ebp), %ecx
addl %edi, %edx
@ -237,7 +237,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %esi
# round 10
movl 80(%ebp), %edx
movl 84(%ebp), %ecx
xorl %esi, %edx
@ -258,7 +258,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %edi
# round 11
movl 88(%ebp), %edx
movl 92(%ebp), %ecx
subl %edi, %edx
@ -279,11 +279,11 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %esi
# test short key flag
popl %edx
orl %edx, %edx
jnz .L000cast_enc_done
# round 12
movl 96(%ebp), %edx
movl 100(%ebp), %ecx
addl %esi, %edx
@ -304,7 +304,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %edi
# round 13
movl 104(%ebp), %edx
movl 108(%ebp), %ecx
xorl %edi, %edx
@ -325,7 +325,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %esi
# round 14
movl 112(%ebp), %edx
movl 116(%ebp), %ecx
subl %esi, %edx
@ -346,7 +346,7 @@ CAST_encrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %edi
# round 15
movl 120(%ebp), %edx
movl 124(%ebp), %ecx
addl %edi, %edx
@ -377,8 +377,8 @@ CAST_encrypt:
popl %ebx
popl %ebp
ret
.CAST_encrypt_end:
.size CAST_encrypt,.CAST_encrypt_end-CAST_encrypt
.L_CAST_encrypt_end:
.size CAST_encrypt,.L_CAST_encrypt_end-CAST_encrypt
.ident "CAST_encrypt"
.text
.align 16
@ -392,15 +392,15 @@ CAST_decrypt:
movl 16(%esp), %ebp
pushl %esi
pushl %edi
# Load the 2 words
movl (%ebx), %edi
movl 4(%ebx), %esi
# Get short key flag
movl 128(%ebp), %eax
orl %eax, %eax
jnz .L001cast_dec_skip
xorl %eax, %eax
# round 15
movl 120(%ebp), %edx
movl 124(%ebp), %ecx
addl %esi, %edx
@ -421,7 +421,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %edi
# round 14
movl 112(%ebp), %edx
movl 116(%ebp), %ecx
subl %edi, %edx
@ -442,7 +442,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %esi
# round 13
movl 104(%ebp), %edx
movl 108(%ebp), %ecx
xorl %esi, %edx
@ -463,7 +463,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %edi
# round 12
movl 96(%ebp), %edx
movl 100(%ebp), %ecx
addl %edi, %edx
@ -485,7 +485,7 @@ CAST_decrypt:
addl %ebx, %ecx
xorl %ecx, %esi
.L001cast_dec_skip:
# round 11
movl 88(%ebp), %edx
movl 92(%ebp), %ecx
subl %esi, %edx
@ -506,7 +506,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %edi
# round 10
movl 80(%ebp), %edx
movl 84(%ebp), %ecx
xorl %edi, %edx
@ -527,7 +527,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %esi
# round 9
movl 72(%ebp), %edx
movl 76(%ebp), %ecx
addl %esi, %edx
@ -548,7 +548,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %edi
# round 8
movl 64(%ebp), %edx
movl 68(%ebp), %ecx
subl %edi, %edx
@ -569,7 +569,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %esi
# round 7
movl 56(%ebp), %edx
movl 60(%ebp), %ecx
xorl %esi, %edx
@ -590,7 +590,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %edi
# round 6
movl 48(%ebp), %edx
movl 52(%ebp), %ecx
addl %edi, %edx
@ -611,7 +611,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %esi
# round 5
movl 40(%ebp), %edx
movl 44(%ebp), %ecx
subl %esi, %edx
@ -632,7 +632,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %edi
# round 4
movl 32(%ebp), %edx
movl 36(%ebp), %ecx
xorl %edi, %edx
@ -653,7 +653,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %esi
# round 3
movl 24(%ebp), %edx
movl 28(%ebp), %ecx
addl %esi, %edx
@ -674,7 +674,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
addl %ebx, %ecx
xorl %ecx, %edi
# round 2
movl 16(%ebp), %edx
movl 20(%ebp), %ecx
subl %edi, %edx
@ -695,7 +695,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
subl %ebx, %ecx
xorl %ecx, %esi
# round 1
movl 8(%ebp), %edx
movl 12(%ebp), %ecx
xorl %esi, %edx
@ -716,7 +716,7 @@ CAST_decrypt:
movl CAST_S_table3(,%edx,4),%ebx
xorl %ebx, %ecx
xorl %ecx, %edi
# round 0
movl (%ebp), %edx
movl 4(%ebp), %ecx
addl %edi, %edx
@ -746,8 +746,8 @@ CAST_decrypt:
popl %ebx
popl %ebp
ret
.CAST_decrypt_end:
.size CAST_decrypt,.CAST_decrypt_end-CAST_decrypt
.L_CAST_decrypt_end:
.size CAST_decrypt,.L_CAST_decrypt_end-CAST_decrypt
.ident "CAST_decrypt"
.text
.align 16
@ -760,7 +760,7 @@ CAST_cbc_encrypt:
pushl %esi
pushl %edi
movl 28(%esp), %ebp
# getting iv ptr from parameter 4
movl 36(%esp), %ebx
movl (%ebx), %esi
movl 4(%ebx), %edi
@ -771,9 +771,9 @@ CAST_cbc_encrypt:
movl %esp, %ebx
movl 36(%esp), %esi
movl 40(%esp), %edi
# getting encrypt flag from parameter 5
movl 56(%esp), %ecx
# get and push parameter 3
movl 48(%esp), %eax
pushl %eax
pushl %ebx
@ -789,18 +789,18 @@ CAST_cbc_encrypt:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call CAST_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
addl $8, %esi
@ -811,45 +811,50 @@ CAST_cbc_encrypt:
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
movl .L006cbc_enc_jmp_table(,%ebp,4),%ebp
jmp *%ebp
.L007ej7:
.L008ej7:
xorl %edx, %edx
movb 6(%esi), %dh
sall $8, %edx
.L008ej6:
.L009ej6:
movb 5(%esi), %dh
.L009ej5:
.L010ej5:
movb 4(%esi), %dl
.L010ej4:
.L011ej4:
movl (%esi), %ecx
jmp .L011ejend
.L012ej3:
jmp .L012ejend
.L013ej3:
movb 2(%esi), %ch
xorl %ecx, %ecx
sall $8, %ecx
.L013ej2:
.L014ej2:
movb 1(%esi), %ch
.L014ej1:
.L015ej1:
movb (%esi), %cl
.L011ejend:
.L012ejend:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call CAST_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
jmp .L005finish
@ -858,23 +863,23 @@ CAST_cbc_encrypt:
andl $4294967288, %ebp
movl 16(%esp), %eax
movl 20(%esp), %ebx
jz .L015decrypt_finish
.L016decrypt_loop:
jz .L016decrypt_finish
.L017decrypt_loop:
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call CAST_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
@ -888,52 +893,52 @@ CAST_cbc_encrypt:
addl $8, %esi
addl $8, %edi
subl $8, %ebp
jnz .L016decrypt_loop
.L015decrypt_finish:
jnz .L017decrypt_loop
.L016decrypt_finish:
movl 52(%esp), %ebp
andl $7, %ebp
jz .L005finish
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call CAST_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
.byte 200 # bswapl %eax
.byte 200
.byte 15
.byte 203 # bswapl %ebx
.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
xorl %ebx, %edx
movl (%esi), %eax
movl 4(%esi), %ebx
.L017dj7:
.L018dj7:
rorl $16, %edx
movb %dl, 6(%edi)
shrl $16, %edx
.L018dj6:
.L019dj6:
movb %dh, 5(%edi)
.L019dj5:
.L020dj5:
movb %dl, 4(%edi)
.L020dj4:
.L021dj4:
movl %ecx, (%edi)
jmp .L021djend
.L022dj3:
jmp .L022djend
.L023dj3:
rorl $16, %ecx
movb %cl, 2(%edi)
sall $16, %ecx
.L023dj2:
.L024dj2:
movb %ch, 1(%esi)
.L024dj1:
.L025dj1:
movb %cl, (%esi)
.L021djend:
.L022djend:
jmp .L005finish
.align 16
.L005finish:
@ -947,25 +952,15 @@ CAST_cbc_encrypt:
popl %ebp
ret
.align 16
.L006cbc_enc_jmp_table:
.L007cbc_enc_jmp_table:
.long 0
.long .L014ej1
.long .L013ej2
.long .L012ej3
.long .L010ej4
.long .L009ej5
.long .L008ej6
.long .L007ej7
.align 16
.L025cbc_dec_jmp_table:
.long 0
.long .L024dj1
.long .L023dj2
.long .L022dj3
.long .L020dj4
.long .L019dj5
.long .L018dj6
.long .L017dj7
.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
.L_CAST_cbc_encrypt_end:
.size CAST_cbc_encrypt,.L_CAST_cbc_encrypt_end-CAST_cbc_encrypt
.ident "desasm.pl"

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by crypt586.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "crypt586.s"
.version "01.01"
@ -19,18 +19,20 @@ fcrypt_body:
pushl %edi
# Load the 2 words
xorl %edi, %edi
xorl %esi, %esi
movl 24(%esp), %ebp
leal DES_SPtrans, %edx
pushl %edx
movl 28(%esp), %ebp
pushl $25
.L000start:
# Round 0
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -53,37 +55,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 1
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -106,37 +105,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
# Round 2
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -159,37 +155,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 3
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -212,37 +205,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
# Round 4
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -265,37 +255,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 5
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -318,37 +305,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
# Round 6
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -371,37 +355,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 7
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -424,37 +405,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
# Round 8
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -477,37 +455,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 9
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -530,37 +505,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
# Round 10
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -583,37 +555,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 11
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -636,37 +605,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
# Round 12
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -689,37 +655,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 13
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -742,37 +705,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
# Round 14
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %esi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %esi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -795,37 +755,34 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%edi
movb %dl, %bl
xorl %ebp, %edi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %edi
xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %edi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %edi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %edi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %edi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %edi
movl 32(%esp), %ebp
# Round 15
movl 32(%esp), %eax
movl 36(%esp), %eax
movl %edi, %edx
shrl $16, %edx
movl 36(%esp), %ecx
movl 40(%esp), %ecx
xorl %edi, %edx
andl %edx, %eax
andl %ecx, %edx
@ -848,31 +805,28 @@ fcrypt_body:
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
movl des_SPtrans(%ebx),%ebp
movl 4(%esp), %ebp
xorl (%ebp,%ebx),%esi
movb %dl, %bl
xorl %ebp, %esi
movl 0x200+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
movl 0x100+des_SPtrans(%ebx),%ebp
xorl %ebp, %esi
xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
movl 0x300+des_SPtrans(%ecx),%ebp
xorl %ebp, %esi
movl 28(%esp), %ebp
xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
movl 0x600+des_SPtrans(%ebx),%ebx
movl 0x600(%ebp,%ebx),%ebx
xorl %ebx, %esi
movl 0x700+des_SPtrans(%ecx),%ebx
movl 0x700(%ebp,%ecx),%ebx
xorl %ebx, %esi
movl 0x400+des_SPtrans(%eax),%ebx
movl 0x400(%ebp,%eax),%ebx
xorl %ebx, %esi
movl 0x500+des_SPtrans(%edx),%ebx
movl 0x500(%ebp,%edx),%ebx
xorl %ebx, %esi
movl 32(%esp), %ebp
movl (%esp), %ebx
movl %edi, %eax
decl %ebx
@ -881,10 +835,10 @@ fcrypt_body:
movl %ebx, (%esp)
jnz .L000start
# FP
movl 24(%esp), %edx
movl 28(%esp), %edx
.byte 209
.byte 207 # rorl $1 %edi
.byte 207
movl %esi, %eax
xorl %edi, %esi
andl $0xaaaaaaaa, %esi
@ -922,12 +876,12 @@ fcrypt_body:
rorl $4, %eax
movl %eax, (%edx)
movl %edi, 4(%edx)
popl %ecx
addl $8, %esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.fcrypt_body_end:
.size fcrypt_body,.fcrypt_body_end-fcrypt_body
.L_fcrypt_body_end:
.size fcrypt_body,.L_fcrypt_body_end-fcrypt_body
.ident "fcrypt_body"

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,11 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by md5-586.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "md5-586.s"
.file "/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/md5/asm/md5-586.s"
.version "01.01"
gcc2_compiled.:
.text
@ -30,10 +30,10 @@ md5_block_asm_host_order:
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
@ -43,7 +43,7 @@ md5_block_asm_host_order:
roll $7, %eax
movl 4(%esi), %ebp
addl %ebx, %eax
# R0 1
xorl %ecx, %edi
andl %eax, %edi
leal 3905402710(%edx,%ebp,1),%edx
@ -53,7 +53,7 @@ md5_block_asm_host_order:
roll $12, %edx
movl 8(%esi), %ebp
addl %eax, %edx
# R0 2
xorl %ebx, %edi
andl %edx, %edi
leal 606105819(%ecx,%ebp,1),%ecx
@ -63,7 +63,7 @@ md5_block_asm_host_order:
roll $17, %ecx
movl 12(%esi), %ebp
addl %edx, %ecx
# R0 3
xorl %eax, %edi
andl %ecx, %edi
leal 3250441966(%ebx,%ebp,1),%ebx
@ -73,7 +73,7 @@ md5_block_asm_host_order:
roll $22, %ebx
movl 16(%esi), %ebp
addl %ecx, %ebx
# R0 4
xorl %edx, %edi
andl %ebx, %edi
leal 4118548399(%eax,%ebp,1),%eax
@ -83,7 +83,7 @@ md5_block_asm_host_order:
roll $7, %eax
movl 20(%esi), %ebp
addl %ebx, %eax
# R0 5
xorl %ecx, %edi
andl %eax, %edi
leal 1200080426(%edx,%ebp,1),%edx
@ -93,7 +93,7 @@ md5_block_asm_host_order:
roll $12, %edx
movl 24(%esi), %ebp
addl %eax, %edx
# R0 6
xorl %ebx, %edi
andl %edx, %edi
leal 2821735955(%ecx,%ebp,1),%ecx
@ -103,7 +103,7 @@ md5_block_asm_host_order:
roll $17, %ecx
movl 28(%esi), %ebp
addl %edx, %ecx
# R0 7
xorl %eax, %edi
andl %ecx, %edi
leal 4249261313(%ebx,%ebp,1),%ebx
@ -113,7 +113,7 @@ md5_block_asm_host_order:
roll $22, %ebx
movl 32(%esi), %ebp
addl %ecx, %ebx
# R0 8
xorl %edx, %edi
andl %ebx, %edi
leal 1770035416(%eax,%ebp,1),%eax
@ -123,7 +123,7 @@ md5_block_asm_host_order:
roll $7, %eax
movl 36(%esi), %ebp
addl %ebx, %eax
# R0 9
xorl %ecx, %edi
andl %eax, %edi
leal 2336552879(%edx,%ebp,1),%edx
@ -133,7 +133,7 @@ md5_block_asm_host_order:
roll $12, %edx
movl 40(%esi), %ebp
addl %eax, %edx
# R0 10
xorl %ebx, %edi
andl %edx, %edi
leal 4294925233(%ecx,%ebp,1),%ecx
@ -143,7 +143,7 @@ md5_block_asm_host_order:
roll $17, %ecx
movl 44(%esi), %ebp
addl %edx, %ecx
# R0 11
xorl %eax, %edi
andl %ecx, %edi
leal 2304563134(%ebx,%ebp,1),%ebx
@ -153,7 +153,7 @@ md5_block_asm_host_order:
roll $22, %ebx
movl 48(%esi), %ebp
addl %ecx, %ebx
# R0 12
xorl %edx, %edi
andl %ebx, %edi
leal 1804603682(%eax,%ebp,1),%eax
@ -163,7 +163,7 @@ md5_block_asm_host_order:
roll $7, %eax
movl 52(%esi), %ebp
addl %ebx, %eax
# R0 13
xorl %ecx, %edi
andl %eax, %edi
leal 4254626195(%edx,%ebp,1),%edx
@ -173,7 +173,7 @@ md5_block_asm_host_order:
roll $12, %edx
movl 56(%esi), %ebp
addl %eax, %edx
# R0 14
xorl %ebx, %edi
andl %edx, %edi
leal 2792965006(%ecx,%ebp,1),%ecx
@ -183,7 +183,7 @@ md5_block_asm_host_order:
roll $17, %ecx
movl 60(%esi), %ebp
addl %edx, %ecx
# R0 15
xorl %eax, %edi
andl %ecx, %edi
leal 1236535329(%ebx,%ebp,1),%ebx
@ -194,8 +194,8 @@ md5_block_asm_host_order:
movl 4(%esi), %ebp
addl %ecx, %ebx
# R1 section
# R1 16
leal 4129170786(%eax,%ebp,1),%eax
xorl %ebx, %edi
andl %edx, %edi
@ -205,7 +205,7 @@ md5_block_asm_host_order:
movl %ebx, %edi
roll $5, %eax
addl %ebx, %eax
# R1 17
leal 3225465664(%edx,%ebp,1),%edx
xorl %eax, %edi
andl %ecx, %edi
@ -215,7 +215,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $9, %edx
addl %eax, %edx
# R1 18
leal 643717713(%ecx,%ebp,1),%ecx
xorl %edx, %edi
andl %ebx, %edi
@ -225,7 +225,7 @@ md5_block_asm_host_order:
movl %edx, %edi
roll $14, %ecx
addl %edx, %ecx
# R1 19
leal 3921069994(%ebx,%ebp,1),%ebx
xorl %ecx, %edi
andl %eax, %edi
@ -235,7 +235,7 @@ md5_block_asm_host_order:
movl %ecx, %edi
roll $20, %ebx
addl %ecx, %ebx
# R1 20
leal 3593408605(%eax,%ebp,1),%eax
xorl %ebx, %edi
andl %edx, %edi
@ -245,7 +245,7 @@ md5_block_asm_host_order:
movl %ebx, %edi
roll $5, %eax
addl %ebx, %eax
# R1 21
leal 38016083(%edx,%ebp,1),%edx
xorl %eax, %edi
andl %ecx, %edi
@ -255,7 +255,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $9, %edx
addl %eax, %edx
# R1 22
leal 3634488961(%ecx,%ebp,1),%ecx
xorl %edx, %edi
andl %ebx, %edi
@ -265,7 +265,7 @@ md5_block_asm_host_order:
movl %edx, %edi
roll $14, %ecx
addl %edx, %ecx
# R1 23
leal 3889429448(%ebx,%ebp,1),%ebx
xorl %ecx, %edi
andl %eax, %edi
@ -275,7 +275,7 @@ md5_block_asm_host_order:
movl %ecx, %edi
roll $20, %ebx
addl %ecx, %ebx
# R1 24
leal 568446438(%eax,%ebp,1),%eax
xorl %ebx, %edi
andl %edx, %edi
@ -285,7 +285,7 @@ md5_block_asm_host_order:
movl %ebx, %edi
roll $5, %eax
addl %ebx, %eax
# R1 25
leal 3275163606(%edx,%ebp,1),%edx
xorl %eax, %edi
andl %ecx, %edi
@ -295,7 +295,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $9, %edx
addl %eax, %edx
# R1 26
leal 4107603335(%ecx,%ebp,1),%ecx
xorl %edx, %edi
andl %ebx, %edi
@ -305,7 +305,7 @@ md5_block_asm_host_order:
movl %edx, %edi
roll $14, %ecx
addl %edx, %ecx
# R1 27
leal 1163531501(%ebx,%ebp,1),%ebx
xorl %ecx, %edi
andl %eax, %edi
@ -315,7 +315,7 @@ md5_block_asm_host_order:
movl %ecx, %edi
roll $20, %ebx
addl %ecx, %ebx
# R1 28
leal 2850285829(%eax,%ebp,1),%eax
xorl %ebx, %edi
andl %edx, %edi
@ -325,7 +325,7 @@ md5_block_asm_host_order:
movl %ebx, %edi
roll $5, %eax
addl %ebx, %eax
# R1 29
leal 4243563512(%edx,%ebp,1),%edx
xorl %eax, %edi
andl %ecx, %edi
@ -335,7 +335,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $9, %edx
addl %eax, %edx
# R1 30
leal 1735328473(%ecx,%ebp,1),%ecx
xorl %edx, %edi
andl %ebx, %edi
@ -345,7 +345,7 @@ md5_block_asm_host_order:
movl %edx, %edi
roll $14, %ecx
addl %edx, %ecx
# R1 31
leal 2368359562(%ebx,%ebp,1),%ebx
xorl %ecx, %edi
andl %eax, %edi
@ -356,8 +356,8 @@ md5_block_asm_host_order:
roll $20, %ebx
addl %ecx, %ebx
# R2 section
# R2 32
xorl %edx, %edi
xorl %ebx, %edi
leal 4294588738(%eax,%ebp,1),%eax
@ -365,7 +365,7 @@ md5_block_asm_host_order:
roll $4, %eax
movl 32(%esi), %ebp
movl %ebx, %edi
# R2 33
leal 2272392833(%edx,%ebp,1),%edx
addl %ebx, %eax
xorl %ecx, %edi
@ -375,7 +375,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $11, %edx
addl %eax, %edx
# R2 34
xorl %ebx, %edi
xorl %edx, %edi
leal 1839030562(%ecx,%ebp,1),%ecx
@ -383,7 +383,7 @@ md5_block_asm_host_order:
roll $16, %ecx
movl 56(%esi), %ebp
movl %edx, %edi
# R2 35
leal 4259657740(%ebx,%ebp,1),%ebx
addl %edx, %ecx
xorl %eax, %edi
@ -393,7 +393,7 @@ md5_block_asm_host_order:
movl %ecx, %edi
roll $23, %ebx
addl %ecx, %ebx
# R2 36
xorl %edx, %edi
xorl %ebx, %edi
leal 2763975236(%eax,%ebp,1),%eax
@ -401,7 +401,7 @@ md5_block_asm_host_order:
roll $4, %eax
movl 16(%esi), %ebp
movl %ebx, %edi
# R2 37
leal 1272893353(%edx,%ebp,1),%edx
addl %ebx, %eax
xorl %ecx, %edi
@ -411,7 +411,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $11, %edx
addl %eax, %edx
# R2 38
xorl %ebx, %edi
xorl %edx, %edi
leal 4139469664(%ecx,%ebp,1),%ecx
@ -419,7 +419,7 @@ md5_block_asm_host_order:
roll $16, %ecx
movl 40(%esi), %ebp
movl %edx, %edi
# R2 39
leal 3200236656(%ebx,%ebp,1),%ebx
addl %edx, %ecx
xorl %eax, %edi
@ -429,7 +429,7 @@ md5_block_asm_host_order:
movl %ecx, %edi
roll $23, %ebx
addl %ecx, %ebx
# R2 40
xorl %edx, %edi
xorl %ebx, %edi
leal 681279174(%eax,%ebp,1),%eax
@ -437,7 +437,7 @@ md5_block_asm_host_order:
roll $4, %eax
movl (%esi), %ebp
movl %ebx, %edi
# R2 41
leal 3936430074(%edx,%ebp,1),%edx
addl %ebx, %eax
xorl %ecx, %edi
@ -447,7 +447,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $11, %edx
addl %eax, %edx
# R2 42
xorl %ebx, %edi
xorl %edx, %edi
leal 3572445317(%ecx,%ebp,1),%ecx
@ -455,7 +455,7 @@ md5_block_asm_host_order:
roll $16, %ecx
movl 24(%esi), %ebp
movl %edx, %edi
# R2 43
leal 76029189(%ebx,%ebp,1),%ebx
addl %edx, %ecx
xorl %eax, %edi
@ -465,7 +465,7 @@ md5_block_asm_host_order:
movl %ecx, %edi
roll $23, %ebx
addl %ecx, %ebx
# R2 44
xorl %edx, %edi
xorl %ebx, %edi
leal 3654602809(%eax,%ebp,1),%eax
@ -473,7 +473,7 @@ md5_block_asm_host_order:
roll $4, %eax
movl 48(%esi), %ebp
movl %ebx, %edi
# R2 45
leal 3873151461(%edx,%ebp,1),%edx
addl %ebx, %eax
xorl %ecx, %edi
@ -483,7 +483,7 @@ md5_block_asm_host_order:
movl %eax, %edi
roll $11, %edx
addl %eax, %edx
# R2 46
xorl %ebx, %edi
xorl %edx, %edi
leal 530742520(%ecx,%ebp,1),%ecx
@ -491,7 +491,7 @@ md5_block_asm_host_order:
roll $16, %ecx
movl 8(%esi), %ebp
movl %edx, %edi
# R2 47
leal 3299628645(%ebx,%ebp,1),%ebx
addl %edx, %ecx
xorl %eax, %edi
@ -502,8 +502,8 @@ md5_block_asm_host_order:
roll $23, %ebx
addl %ecx, %ebx
# R3 section
# R3 48
xorl %edx, %edi
orl %ebx, %edi
leal 4096336452(%eax,%ebp,1),%eax
@ -514,7 +514,7 @@ md5_block_asm_host_order:
roll $6, %eax
xorl %ecx, %edi
addl %ebx, %eax
# R3 49
orl %eax, %edi
leal 1126891415(%edx,%ebp,1),%edx
xorl %ebx, %edi
@ -524,7 +524,7 @@ md5_block_asm_host_order:
roll $10, %edx
xorl %ebx, %edi
addl %eax, %edx
# R3 50
orl %edx, %edi
leal 2878612391(%ecx,%ebp,1),%ecx
xorl %eax, %edi
@ -534,7 +534,7 @@ md5_block_asm_host_order:
roll $15, %ecx
xorl %eax, %edi
addl %edx, %ecx
# R3 51
orl %ecx, %edi
leal 4237533241(%ebx,%ebp,1),%ebx
xorl %edx, %edi
@ -544,7 +544,7 @@ md5_block_asm_host_order:
roll $21, %ebx
xorl %edx, %edi
addl %ecx, %ebx
# R3 52
orl %ebx, %edi
leal 1700485571(%eax,%ebp,1),%eax
xorl %ecx, %edi
@ -554,7 +554,7 @@ md5_block_asm_host_order:
roll $6, %eax
xorl %ecx, %edi
addl %ebx, %eax
# R3 53
orl %eax, %edi
leal 2399980690(%edx,%ebp,1),%edx
xorl %ebx, %edi
@ -564,7 +564,7 @@ md5_block_asm_host_order:
roll $10, %edx
xorl %ebx, %edi
addl %eax, %edx
# R3 54
orl %edx, %edi
leal 4293915773(%ecx,%ebp,1),%ecx
xorl %eax, %edi
@ -574,7 +574,7 @@ md5_block_asm_host_order:
roll $15, %ecx
xorl %eax, %edi
addl %edx, %ecx
# R3 55
orl %ecx, %edi
leal 2240044497(%ebx,%ebp,1),%ebx
xorl %edx, %edi
@ -584,7 +584,7 @@ md5_block_asm_host_order:
roll $21, %ebx
xorl %edx, %edi
addl %ecx, %ebx
# R3 56
orl %ebx, %edi
leal 1873313359(%eax,%ebp,1),%eax
xorl %ecx, %edi
@ -594,7 +594,7 @@ md5_block_asm_host_order:
roll $6, %eax
xorl %ecx, %edi
addl %ebx, %eax
# R3 57
orl %eax, %edi
leal 4264355552(%edx,%ebp,1),%edx
xorl %ebx, %edi
@ -604,7 +604,7 @@ md5_block_asm_host_order:
roll $10, %edx
xorl %ebx, %edi
addl %eax, %edx
# R3 58
orl %edx, %edi
leal 2734768916(%ecx,%ebp,1),%ecx
xorl %eax, %edi
@ -614,7 +614,7 @@ md5_block_asm_host_order:
roll $15, %ecx
xorl %eax, %edi
addl %edx, %ecx
# R3 59
orl %ecx, %edi
leal 1309151649(%ebx,%ebp,1),%ebx
xorl %edx, %edi
@ -624,7 +624,7 @@ md5_block_asm_host_order:
roll $21, %ebx
xorl %edx, %edi
addl %ecx, %ebx
# R3 60
orl %ebx, %edi
leal 4149444226(%eax,%ebp,1),%eax
xorl %ecx, %edi
@ -634,7 +634,7 @@ md5_block_asm_host_order:
roll $6, %eax
xorl %ecx, %edi
addl %ebx, %eax
# R3 61
orl %eax, %edi
leal 3174756917(%edx,%ebp,1),%edx
xorl %ebx, %edi
@ -644,7 +644,7 @@ md5_block_asm_host_order:
roll $10, %edx
xorl %ebx, %edi
addl %eax, %edx
# R3 62
orl %edx, %edi
leal 718787259(%ecx,%ebp,1),%ecx
xorl %eax, %edi
@ -654,7 +654,7 @@ md5_block_asm_host_order:
roll $15, %ecx
xorl %eax, %edi
addl %edx, %ecx
# R3 63
orl %ecx, %edi
leal 3951481745(%ebx,%ebp,1),%ebx
xorl %edx, %edi
@ -677,7 +677,7 @@ md5_block_asm_host_order:
movl %ecx, 8(%ebp)
movl %edx, 12(%ebp)
cmpl %esi, %edi
jge .L000start
jae .L000start
popl %eax
popl %ebx
popl %ebp

View File

@ -1,9 +1,9 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by rc4-586.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "rc4-586.s"
.version "01.01"
@ -35,7 +35,7 @@ RC4:
jl .L000end
.L001start:
addl $8, %esi
# Round 0
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -49,7 +49,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
movl (%ebp,%ecx,4), %eax
movb %bl, (%esp)
# Round 1
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -63,7 +63,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
movl (%ebp,%ecx,4), %eax
movb %bl, 1(%esp)
# Round 2
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -77,7 +77,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
movl (%ebp,%ecx,4), %eax
movb %bl, 2(%esp)
# Round 3
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -91,7 +91,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
movl (%ebp,%ecx,4), %eax
movb %bl, 3(%esp)
# Round 4
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -105,7 +105,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
movl (%ebp,%ecx,4), %eax
movb %bl, 4(%esp)
# Round 5
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -119,7 +119,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
movl (%ebp,%ecx,4), %eax
movb %bl, 5(%esp)
# Round 6
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -133,7 +133,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
movl (%ebp,%ecx,4), %eax
movb %bl, 6(%esp)
# Round 7
addl %eax, %edx
andl $255, %edx
incl %ecx
@ -147,7 +147,7 @@ RC4:
movl (%ebp,%ebx,4), %ebx
addl $8, %edi
movb %bl, 7(%esp)
# apply the cipher text
movl (%esp), %eax
movl -8(%esi), %ebx
xorl %ebx, %eax
@ -161,7 +161,7 @@ RC4:
cmpl %ebx, %esi
jle .L001start
.L000end:
# Round 0
addl $8, %ebx
incl %esi
cmpl %esi, %ebx
@ -182,7 +182,7 @@ RC4:
movb -1(%esi), %bh
xorb %bh, %bl
movb %bl, (%edi)
# Round 1
movl 8(%esp), %ebx
cmpl %esi, %ebx
jle .L002finished
@ -202,7 +202,7 @@ RC4:
movb -1(%esi), %bh
xorb %bh, %bl
movb %bl, 1(%edi)
# Round 2
movl 8(%esp), %ebx
cmpl %esi, %ebx
jle .L002finished
@ -222,7 +222,7 @@ RC4:
movb -1(%esi), %bh
xorb %bh, %bl
movb %bl, 2(%edi)
# Round 3
movl 8(%esp), %ebx
cmpl %esi, %ebx
jle .L002finished
@ -242,7 +242,7 @@ RC4:
movb -1(%esi), %bh
xorb %bh, %bl
movb %bl, 3(%edi)
# Round 4
movl 8(%esp), %ebx
cmpl %esi, %ebx
jle .L002finished
@ -262,7 +262,7 @@ RC4:
movb -1(%esi), %bh
xorb %bh, %bl
movb %bl, 4(%edi)
# Round 5
movl 8(%esp), %ebx
cmpl %esi, %ebx
jle .L002finished
@ -282,7 +282,7 @@ RC4:
movb -1(%esi), %bh
xorb %bh, %bl
movb %bl, 5(%edi)
# Round 6
movl 8(%esp), %ebx
cmpl %esi, %ebx
jle .L002finished
@ -311,6 +311,6 @@ RC4:
popl %ebx
popl %ebp
ret
.RC4_end:
.size RC4,.RC4_end-RC4
.L_RC4_end:
.size RC4,.L_RC4_end-RC4
.ident "RC4"

View File

@ -1,9 +1,9 @@
# $FreeBSD$
# Dont even think of reading this code
# It was automatically generated by rc5-586.pl
# Which is a perl program used to generate the x86 assember for
# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
# eric <eay@cryptsoft.com>
.file "rc5-586.s"
.version "01.01"
@ -19,7 +19,7 @@ RC5_32_encrypt:
pushl %edi
movl 16(%esp), %edx
movl 20(%esp), %ebp
# Load the 2 words
movl (%edx), %edi
movl 4(%edx), %esi
pushl %ebx
@ -212,7 +212,7 @@ RC5_32_decrypt:
pushl %edi
movl 16(%esp), %edx
movl 20(%esp), %ebp
# Load the 2 words
movl (%edx), %edi
movl 4(%edx), %esi
pushl %ebx
@ -407,7 +407,7 @@ RC5_32_cbc_encrypt:
pushl %esi
pushl %edi
movl 28(%esp), %ebp
# getting iv ptr from parameter 4
movl 36(%esp), %ebx
movl (%ebx), %esi
movl 4(%ebx), %edi
@ -418,9 +418,9 @@ RC5_32_cbc_encrypt:
movl %esp, %ebx
movl 36(%esp), %esi
movl 40(%esp), %edi
# getting encrypt flag from parameter 5
movl 56(%esp), %ecx
# get and push parameter 3
movl 48(%esp), %eax
pushl %eax
pushl %ebx
@ -450,28 +450,33 @@ RC5_32_cbc_encrypt:
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
movl .L008cbc_enc_jmp_table(,%ebp,4),%ebp
jmp *%ebp
.L009ej7:
.L010ej7:
movb 6(%esi), %dh
sall $8, %edx
.L010ej6:
.L011ej6:
movb 5(%esi), %dh
.L011ej5:
.L012ej5:
movb 4(%esi), %dl
.L012ej4:
.L013ej4:
movl (%esi), %ecx
jmp .L013ejend
.L014ej3:
jmp .L014ejend
.L015ej3:
movb 2(%esi), %ch
sall $8, %ecx
.L015ej2:
.L016ej2:
movb 1(%esi), %ch
.L016ej1:
.L017ej1:
movb (%esi), %cl
.L013ejend:
.L014ejend:
xorl %ecx, %eax
xorl %edx, %ebx
movl %eax, 8(%esp)
@ -487,8 +492,8 @@ RC5_32_cbc_encrypt:
andl $4294967288, %ebp
movl 16(%esp), %eax
movl 20(%esp), %ebx
jz .L017decrypt_finish
.L018decrypt_loop:
jz .L018decrypt_finish
.L019decrypt_loop:
movl (%esi), %eax
movl 4(%esi), %ebx
movl %eax, 8(%esp)
@ -509,8 +514,8 @@ RC5_32_cbc_encrypt:
addl $8, %esi
addl $8, %edi
subl $8, %ebp
jnz .L018decrypt_loop
.L017decrypt_finish:
jnz .L019decrypt_loop
.L018decrypt_finish:
movl 52(%esp), %ebp
andl $7, %ebp
jz .L007finish
@ -527,26 +532,26 @@ RC5_32_cbc_encrypt:
xorl %ebx, %edx
movl (%esi), %eax
movl 4(%esi), %ebx
.L019dj7:
.L020dj7:
rorl $16, %edx
movb %dl, 6(%edi)
shrl $16, %edx
.L020dj6:
.L021dj6:
movb %dh, 5(%edi)
.L021dj5:
.L022dj5:
movb %dl, 4(%edi)
.L022dj4:
.L023dj4:
movl %ecx, (%edi)
jmp .L023djend
.L024dj3:
jmp .L024djend
.L025dj3:
rorl $16, %ecx
movb %cl, 2(%edi)
sall $16, %ecx
.L025dj2:
.L026dj2:
movb %ch, 1(%esi)
.L026dj1:
.L027dj1:
movb %cl, (%esi)
.L023djend:
.L024djend:
jmp .L007finish
.align 16
.L007finish:
@ -560,25 +565,15 @@ RC5_32_cbc_encrypt:
popl %ebp
ret
.align 16
.L008cbc_enc_jmp_table:
.L009cbc_enc_jmp_table:
.long 0
.long .L016ej1
.long .L015ej2
.long .L014ej3
.long .L012ej4
.long .L011ej5
.long .L010ej6
.long .L009ej7
.align 16
.L027cbc_dec_jmp_table:
.long 0
.long .L026dj1
.long .L025dj2
.long .L024dj3
.long .L022dj4
.long .L021dj5
.long .L020dj6
.long .L019dj7
.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
.L_RC5_32_cbc_encrypt_end:
.size RC5_32_cbc_encrypt,.L_RC5_32_cbc_encrypt_end-RC5_32_cbc_encrypt
.ident "desasm.pl"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff