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:
parent
b1e9afabe1
commit
f3d90904b0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=127326
@ -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
|
||||
|
@ -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}
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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
@ -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
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user