⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bx86unix.cpp

📁 openssl是ssl的开源项目
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Run the C pre-processor over this file with one of the following defined * ELF - elf object files, * OUT - a.out object files, * BSDI - BSDI style a.out object files * SOL - Solaris style elf */#define TYPE(a,b)       .type   a,b#define SIZE(a,b)       .size   a,b#if defined(OUT) || defined(BSDI)#define BF_encrypt _BF_encrypt#define BF_decrypt _BF_decrypt#define BF_cbc_encrypt _BF_cbc_encrypt#endif#ifdef OUT#define OK	1#define ALIGN	4#endif#ifdef BSDI#define OK              1#define ALIGN           4#undef SIZE#undef TYPE#define SIZE(a,b)#define TYPE(a,b)#endif#if defined(ELF) || defined(SOL)#define OK              1#define ALIGN           16#endif#ifndef OKYou need to define one ofELF - elf systems - linux-elf, NetBSD and DG-UXOUT - a.out systems - linux-a.out and FreeBSDSOL - solaris systems, which are elf with strange comment linesBSDI - a.out with a very primative version of as.#endif/* Let the Assembler begin :-) */	/* Don't 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, or Solaris */	/* eric <eay@cryptsoft.com> */	.file	"bf-586.s"	.version	"01.01"gcc2_compiled.:.text	.align ALIGN.globl BF_encrypt	TYPE(BF_encrypt,@function)BF_encrypt:	pushl	%ebp	pushl	%ebx	movl	12(%esp),	%ebx	movl	16(%esp),	%ebp	pushl	%esi	pushl	%edi	/* Load the 2 words */	movl	(%ebx),		%edi	movl	4(%ebx),	%esi	xorl	%eax,		%eax	movl	(%ebp),		%ebx	xorl	%ecx,		%ecx	xorl	%ebx,		%edi	/* Round 0 */	movl	4(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 1 */	movl	8(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 2 */	movl	12(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 3 */	movl	16(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 4 */	movl	20(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 5 */	movl	24(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 6 */	movl	28(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 7 */	movl	32(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 8 */	movl	36(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 9 */	movl	40(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 10 */	movl	44(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 11 */	movl	48(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 12 */	movl	52(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 13 */	movl	56(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 14 */	movl	60(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 15 */	movl	64(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	/* Load parameter 0 (16) enc=1 */	movl	20(%esp),	%eax	xorl	%ebx,		%edi	movl	68(%ebp),	%edx	xorl	%edx,		%esi	movl	%edi,		4(%eax)	movl	%esi,		(%eax)	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.BF_encrypt_end:	SIZE(BF_encrypt,.BF_encrypt_end-BF_encrypt).ident	"BF_encrypt".text	.align ALIGN.globl BF_decrypt	TYPE(BF_decrypt,@function)BF_decrypt:	pushl	%ebp	pushl	%ebx	movl	12(%esp),	%ebx	movl	16(%esp),	%ebp	pushl	%esi	pushl	%edi	/* Load the 2 words */	movl	(%ebx),		%edi	movl	4(%ebx),	%esi	xorl	%eax,		%eax	movl	68(%ebp),	%ebx	xorl	%ecx,		%ecx	xorl	%ebx,		%edi	/* Round 16 */	movl	64(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 15 */	movl	60(%ebp),	%edx	movl	%esi,		%ebx	xorl	%edx,		%edi	shrl	$16,		%ebx	movl	%esi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%edi	/* Round 14 */	movl	56(%ebp),	%edx	movl	%edi,		%ebx	xorl	%edx,		%esi	shrl	$16,		%ebx	movl	%edi,		%edx	movb	%bh,		%al	andl	$255,		%ebx	movb	%dh,		%cl	andl	$255,		%edx	movl	72(%ebp,%eax,4),%eax	movl	1096(%ebp,%ebx,4),%ebx	addl	%eax,		%ebx	movl	2120(%ebp,%ecx,4),%eax	xorl	%eax,		%ebx	movl	3144(%ebp,%edx,4),%edx	addl	%edx,		%ebx	xorl	%eax,		%eax	xorl	%ebx,		%esi	/* Round 13 */	movl	52(%ebp),	%edx	movl	%esi,		%ebx

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -