sx86unix.cpp

来自「一个用于点对点传输加密的工具包源码」· C++ 代码 · 共 2,004 行 · 第 1/3 页

CPP
2,004
字号
/* 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) && !defined(ELF))#define sha1_block_asm_data_order _sha1_block_asm_data_order#define sha1_block_asm_host_order _sha1_block_asm_host_order#endif#ifdef OUT#define OK	1#define ALIGN	4#endif#if defined(BSDI) && !defined(ELF)#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 sha1-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	"sha1-586.s"	.version	"01.01"gcc2_compiled.:.text	.align ALIGN.globl sha1_block_asm_data_order	TYPE(sha1_block_asm_data_order,@function)sha1_block_asm_data_order:	movl	12(%esp),	%ecx	pushl	%esi	sall	$6,		%ecx	movl	12(%esp),	%esi	pushl	%ebp	addl	%esi,		%ecx	pushl	%ebx	movl	16(%esp),	%ebp	pushl	%edi	movl	12(%ebp),	%edx	subl	$108,		%esp	movl	16(%ebp),	%edi	movl	8(%ebp),	%ebx	movl	%ecx,		68(%esp)	/* First we need to setup the X array */.L000start:	/* First, load the words onto the stack in network byte order */	movl	(%esi),		%eax	movl	4(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		(%esp)	movl	%ecx,		4(%esp)	movl	8(%esi),	%eax	movl	12(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		8(%esp)	movl	%ecx,		12(%esp)	movl	16(%esi),	%eax	movl	20(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		16(%esp)	movl	%ecx,		20(%esp)	movl	24(%esi),	%eax	movl	28(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		24(%esp)	movl	%ecx,		28(%esp)	movl	32(%esi),	%eax	movl	36(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		32(%esp)	movl	%ecx,		36(%esp)	movl	40(%esi),	%eax	movl	44(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		40(%esp)	movl	%ecx,		44(%esp)	movl	48(%esi),	%eax	movl	52(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		48(%esp)	movl	%ecx,		52(%esp)	movl	56(%esi),	%eax	movl	60(%esi),	%ecx.byte 15.byte 200		/* bswapl  %eax */.byte 15.byte 201		/* bswapl  %ecx */	movl	%eax,		56(%esp)	movl	%ecx,		60(%esp)	/* We now have the X array on the stack */	/* starting at sp-4 */	movl	%esi,		132(%esp).L001shortcut:	/* Start processing */	movl	(%ebp),		%eax	movl	4(%ebp),	%ecx	/* 00_15 0 */	movl	%ebx,		%esi	movl	%eax,		%ebp	xorl	%edx,		%esi	roll	$5,		%ebp	andl	%ecx,		%esi	addl	%edi,		%ebp.byte 209.byte 201		/* rorl $1 %ecx */	movl	(%esp),		%edi.byte 209.byte 201		/* rorl $1 %ecx */	xorl	%edx,		%esi	leal	1518500249(%ebp,%edi,1),%ebp	movl	%ecx,		%edi	addl	%ebp,		%esi	xorl	%ebx,		%edi	movl	%esi,		%ebp	andl	%eax,		%edi	roll	$5,		%ebp	addl	%edx,		%ebp	movl	4(%esp),	%edx.byte 209.byte 200		/* rorl $1 %eax */	xorl	%ebx,		%edi.byte 209.byte 200		/* rorl $1 %eax */	leal	1518500249(%ebp,%edx,1),%ebp	addl	%ebp,		%edi	/* 00_15 2 */	movl	%eax,		%edx	movl	%edi,		%ebp	xorl	%ecx,		%edx	roll	$5,		%ebp	andl	%esi,		%edx	addl	%ebx,		%ebp.byte 209.byte 206		/* rorl $1 %esi */	movl	8(%esp),	%ebx.byte 209.byte 206		/* rorl $1 %esi */	xorl	%ecx,		%edx	leal	1518500249(%ebp,%ebx,1),%ebp	movl	%esi,		%ebx	addl	%ebp,		%edx	xorl	%eax,		%ebx	movl	%edx,		%ebp	andl	%edi,		%ebx	roll	$5,		%ebp	addl	%ecx,		%ebp	movl	12(%esp),	%ecx.byte 209.byte 207		/* rorl $1 %edi */	xorl	%eax,		%ebx.byte 209.byte 207		/* rorl $1 %edi */	leal	1518500249(%ebp,%ecx,1),%ebp	addl	%ebp,		%ebx	/* 00_15 4 */	movl	%edi,		%ecx	movl	%ebx,		%ebp	xorl	%esi,		%ecx	roll	$5,		%ebp	andl	%edx,		%ecx	addl	%eax,		%ebp.byte 209.byte 202		/* rorl $1 %edx */	movl	16(%esp),	%eax.byte 209.byte 202		/* rorl $1 %edx */	xorl	%esi,		%ecx	leal	1518500249(%ebp,%eax,1),%ebp	movl	%edx,		%eax	addl	%ebp,		%ecx	xorl	%edi,		%eax	movl	%ecx,		%ebp	andl	%ebx,		%eax	roll	$5,		%ebp	addl	%esi,		%ebp	movl	20(%esp),	%esi.byte 209.byte 203		/* rorl $1 %ebx */	xorl	%edi,		%eax.byte 209.byte 203		/* rorl $1 %ebx */	leal	1518500249(%ebp,%esi,1),%ebp	addl	%ebp,		%eax	/* 00_15 6 */	movl	%ebx,		%esi	movl	%eax,		%ebp	xorl	%edx,		%esi	roll	$5,		%ebp	andl	%ecx,		%esi	addl	%edi,		%ebp.byte 209.byte 201		/* rorl $1 %ecx */	movl	24(%esp),	%edi.byte 209.byte 201		/* rorl $1 %ecx */	xorl	%edx,		%esi	leal	1518500249(%ebp,%edi,1),%ebp	movl	%ecx,		%edi	addl	%ebp,		%esi	xorl	%ebx,		%edi	movl	%esi,		%ebp	andl	%eax,		%edi	roll	$5,		%ebp	addl	%edx,		%ebp	movl	28(%esp),	%edx.byte 209.byte 200		/* rorl $1 %eax */	xorl	%ebx,		%edi.byte 209.byte 200		/* rorl $1 %eax */	leal	1518500249(%ebp,%edx,1),%ebp	addl	%ebp,		%edi	/* 00_15 8 */	movl	%eax,		%edx	movl	%edi,		%ebp	xorl	%ecx,		%edx	roll	$5,		%ebp	andl	%esi,		%edx	addl	%ebx,		%ebp.byte 209.byte 206		/* rorl $1 %esi */	movl	32(%esp),	%ebx.byte 209.byte 206		/* rorl $1 %esi */	xorl	%ecx,		%edx	leal	1518500249(%ebp,%ebx,1),%ebp	movl	%esi,		%ebx	addl	%ebp,		%edx	xorl	%eax,		%ebx	movl	%edx,		%ebp	andl	%edi,		%ebx	roll	$5,		%ebp	addl	%ecx,		%ebp	movl	36(%esp),	%ecx.byte 209.byte 207		/* rorl $1 %edi */	xorl	%eax,		%ebx.byte 209.byte 207		/* rorl $1 %edi */	leal	1518500249(%ebp,%ecx,1),%ebp	addl	%ebp,		%ebx	/* 00_15 10 */	movl	%edi,		%ecx	movl	%ebx,		%ebp	xorl	%esi,		%ecx	roll	$5,		%ebp	andl	%edx,		%ecx	addl	%eax,		%ebp.byte 209.byte 202		/* rorl $1 %edx */	movl	40(%esp),	%eax.byte 209.byte 202		/* rorl $1 %edx */	xorl	%esi,		%ecx	leal	1518500249(%ebp,%eax,1),%ebp	movl	%edx,		%eax	addl	%ebp,		%ecx	xorl	%edi,		%eax	movl	%ecx,		%ebp	andl	%ebx,		%eax	roll	$5,		%ebp	addl	%esi,		%ebp	movl	44(%esp),	%esi.byte 209.byte 203		/* rorl $1 %ebx */	xorl	%edi,		%eax.byte 209.byte 203		/* rorl $1 %ebx */	leal	1518500249(%ebp,%esi,1),%ebp	addl	%ebp,		%eax	/* 00_15 12 */	movl	%ebx,		%esi	movl	%eax,		%ebp	xorl	%edx,		%esi	roll	$5,		%ebp	andl	%ecx,		%esi	addl	%edi,		%ebp.byte 209.byte 201		/* rorl $1 %ecx */	movl	48(%esp),	%edi.byte 209.byte 201		/* rorl $1 %ecx */	xorl	%edx,		%esi	leal	1518500249(%ebp,%edi,1),%ebp	movl	%ecx,		%edi	addl	%ebp,		%esi	xorl	%ebx,		%edi	movl	%esi,		%ebp	andl	%eax,		%edi	roll	$5,		%ebp	addl	%edx,		%ebp	movl	52(%esp),	%edx.byte 209.byte 200		/* rorl $1 %eax */	xorl	%ebx,		%edi.byte 209.byte 200		/* rorl $1 %eax */	leal	1518500249(%ebp,%edx,1),%ebp	addl	%ebp,		%edi	/* 00_15 14 */	movl	%eax,		%edx	movl	%edi,		%ebp	xorl	%ecx,		%edx	roll	$5,		%ebp	andl	%esi,		%edx	addl	%ebx,		%ebp.byte 209.byte 206		/* rorl $1 %esi */	movl	56(%esp),	%ebx.byte 209.byte 206		/* rorl $1 %esi */	xorl	%ecx,		%edx	leal	1518500249(%ebp,%ebx,1),%ebp	movl	%esi,		%ebx	addl	%ebp,		%edx	xorl	%eax,		%ebx	movl	%edx,		%ebp	andl	%edi,		%ebx	roll	$5,		%ebp	addl	%ecx,		%ebp	movl	60(%esp),	%ecx.byte 209.byte 207		/* rorl $1 %edi */	xorl	%eax,		%ebx.byte 209.byte 207		/* rorl $1 %edi */	leal	1518500249(%ebp,%ecx,1),%ebp	addl	%ebp,		%ebx	/* 16_19 16 */	nop	movl	(%esp),		%ebp	movl	8(%esp),	%ecx	xorl	%ebp,		%ecx	movl	32(%esp),	%ebp	xorl	%ebp,		%ecx	movl	52(%esp),	%ebp	xorl	%ebp,		%ecx	movl	%edi,		%ebp.byte 209.byte 193		/* roll $1 %ecx */	xorl	%esi,		%ebp	movl	%ecx,		(%esp)	andl	%edx,		%ebp	leal	1518500249(%ecx,%eax,1),%ecx	xorl	%esi,		%ebp	movl	%ebx,		%eax	addl	%ebp,		%ecx	roll	$5,		%eax.byte 209.byte 202		/* rorl $1 %edx */	addl	%eax,		%ecx	movl	4(%esp),	%eax	movl	12(%esp),	%ebp	xorl	%ebp,		%eax	movl	36(%esp),	%ebp	xorl	%ebp,		%eax	movl	56(%esp),	%ebp.byte 209.byte 202		/* rorl $1 %edx */	xorl	%ebp,		%eax.byte 209.byte 192		/* roll $1 %eax */	movl	%edx,		%ebp	xorl	%edi,		%ebp	movl	%eax,		4(%esp)	andl	%ebx,		%ebp	leal	1518500249(%eax,%esi,1),%eax	xorl	%edi,		%ebp	movl	%ecx,		%esi	roll	$5,		%esi.byte 209.byte 203		/* rorl $1 %ebx */	addl	%esi,		%eax.byte 209.byte 203		/* rorl $1 %ebx */	addl	%ebp,		%eax	/* 16_19 18 */	movl	8(%esp),	%ebp	movl	16(%esp),	%esi	xorl	%ebp,		%esi	movl	40(%esp),	%ebp	xorl	%ebp,		%esi	movl	60(%esp),	%ebp	xorl	%ebp,		%esi	movl	%ebx,		%ebp.byte 209.byte 198		/* roll $1 %esi */	xorl	%edx,		%ebp	movl	%esi,		8(%esp)	andl	%ecx,		%ebp	leal	1518500249(%esi,%edi,1),%esi	xorl	%edx,		%ebp	movl	%eax,		%edi	addl	%ebp,		%esi	roll	$5,		%edi.byte 209.byte 201		/* rorl $1 %ecx */	addl	%edi,		%esi	movl	12(%esp),	%edi	movl	20(%esp),	%ebp	xorl	%ebp,		%edi	movl	44(%esp),	%ebp	xorl	%ebp,		%edi	movl	(%esp),		%ebp.byte 209.byte 201		/* rorl $1 %ecx */	xorl	%ebp,		%edi.byte 209.byte 199		/* roll $1 %edi */	movl	%ecx,		%ebp	xorl	%ebx,		%ebp	movl	%edi,		12(%esp)	andl	%eax,		%ebp	leal	1518500249(%edi,%edx,1),%edi	xorl	%ebx,		%ebp	movl	%esi,		%edx	roll	$5,		%edx.byte 209.byte 200		/* rorl $1 %eax */	addl	%edx,		%edi.byte 209.byte 200		/* rorl $1 %eax */	addl	%ebp,		%edi	/* 20_39 20 */	movl	16(%esp),	%edx	movl	24(%esp),	%ebp	xorl	%ebp,		%edx	movl	48(%esp),	%ebp	xorl	%ebp,		%edx	movl	4(%esp),	%ebp	xorl	%ebp,		%edx	movl	%esi,		%ebp.byte 209.byte 194		/* roll $1 %edx */	xorl	%eax,		%ebp	movl	%edx,		16(%esp)	xorl	%ecx,		%ebp	leal	1859775393(%edx,%ebx,1),%edx	movl	%edi,		%ebx	roll	$5,		%ebx.byte 209.byte 206		/* rorl $1 %esi */	addl	%ebp,		%ebx.byte 209.byte 206		/* rorl $1 %esi */	addl	%ebx,		%edx	/* 20_39 21 */	movl	20(%esp),	%ebx	movl	28(%esp),	%ebp	xorl	%ebp,		%ebx	movl	52(%esp),	%ebp	xorl	%ebp,		%ebx	movl	8(%esp),	%ebp	xorl	%ebp,		%ebx	movl	%edi,		%ebp.byte 209.byte 195		/* roll $1 %ebx */	xorl	%esi,		%ebp	movl	%ebx,		20(%esp)	xorl	%eax,		%ebp	leal	1859775393(%ebx,%ecx,1),%ebx	movl	%edx,		%ecx	roll	$5,		%ecx.byte 209.byte 207		/* rorl $1 %edi */	addl	%ebp,		%ecx.byte 209.byte 207		/* rorl $1 %edi */	addl	%ecx,		%ebx	/* 20_39 22 */	movl	24(%esp),	%ecx	movl	32(%esp),	%ebp	xorl	%ebp,		%ecx	movl	56(%esp),	%ebp	xorl	%ebp,		%ecx	movl	12(%esp),	%ebp	xorl	%ebp,		%ecx	movl	%edx,		%ebp.byte 209.byte 193		/* roll $1 %ecx */	xorl	%edi,		%ebp	movl	%ecx,		24(%esp)	xorl	%esi,		%ebp	leal	1859775393(%ecx,%eax,1),%ecx	movl	%ebx,		%eax	roll	$5,		%eax.byte 209.byte 202		/* rorl $1 %edx */	addl	%ebp,		%eax.byte 209.byte 202		/* rorl $1 %edx */	addl	%eax,		%ecx	/* 20_39 23 */	movl	28(%esp),	%eax	movl	36(%esp),	%ebp	xorl	%ebp,		%eax	movl	60(%esp),	%ebp	xorl	%ebp,		%eax	movl	16(%esp),	%ebp	xorl	%ebp,		%eax	movl	%ebx,		%ebp.byte 209.byte 192		/* roll $1 %eax */	xorl	%edx,		%ebp	movl	%eax,		28(%esp)	xorl	%edi,		%ebp	leal	1859775393(%eax,%esi,1),%eax	movl	%ecx,		%esi	roll	$5,		%esi.byte 209.byte 203		/* rorl $1 %ebx */	addl	%ebp,		%esi.byte 209.byte 203		/* rorl $1 %ebx */	addl	%esi,		%eax	/* 20_39 24 */	movl	32(%esp),	%esi	movl	40(%esp),	%ebp	xorl	%ebp,		%esi	movl	(%esp),		%ebp	xorl	%ebp,		%esi	movl	20(%esp),	%ebp	xorl	%ebp,		%esi	movl	%ecx,		%ebp.byte 209.byte 198		/* roll $1 %esi */	xorl	%ebx,		%ebp	movl	%esi,		32(%esp)	xorl	%edx,		%ebp	leal	1859775393(%esi,%edi,1),%esi	movl	%eax,		%edi	roll	$5,		%edi.byte 209.byte 201		/* rorl $1 %ecx */	addl	%ebp,		%edi.byte 209.byte 201		/* rorl $1 %ecx */	addl	%edi,		%esi	/* 20_39 25 */	movl	36(%esp),	%edi	movl	44(%esp),	%ebp	xorl	%ebp,		%edi	movl	4(%esp),	%ebp	xorl	%ebp,		%edi	movl	24(%esp),	%ebp	xorl	%ebp,		%edi	movl	%eax,		%ebp.byte 209.byte 199		/* roll $1 %edi */	xorl	%ecx,		%ebp	movl	%edi,		36(%esp)	xorl	%ebx,		%ebp	leal	1859775393(%edi,%edx,1),%edi	movl	%esi,		%edx	roll	$5,		%edx.byte 209.byte 200		/* rorl $1 %eax */	addl	%ebp,		%edx.byte 209.byte 200		/* rorl $1 %eax */	addl	%edx,		%edi	/* 20_39 26 */	movl	40(%esp),	%edx	movl	48(%esp),	%ebp	xorl	%ebp,		%edx	movl	8(%esp),	%ebp	xorl	%ebp,		%edx	movl	28(%esp),	%ebp	xorl	%ebp,		%edx	movl	%esi,		%ebp.byte 209.byte 194		/* roll $1 %edx */	xorl	%eax,		%ebp	movl	%edx,		40(%esp)	xorl	%ecx,		%ebp	leal	1859775393(%edx,%ebx,1),%edx	movl	%edi,		%ebx	roll	$5,		%ebx.byte 209.byte 206		/* rorl $1 %esi */	addl	%ebp,		%ebx.byte 209.byte 206		/* rorl $1 %esi */	addl	%ebx,		%edx	/* 20_39 27 */	movl	44(%esp),	%ebx	movl	52(%esp),	%ebp	xorl	%ebp,		%ebx	movl	12(%esp),	%ebp	xorl	%ebp,		%ebx	movl	32(%esp),	%ebp	xorl	%ebp,		%ebx	movl	%edi,		%ebp.byte 209.byte 195		/* roll $1 %ebx */	xorl	%esi,		%ebp	movl	%ebx,		44(%esp)	xorl	%eax,		%ebp	leal	1859775393(%ebx,%ecx,1),%ebx	movl	%edx,		%ecx	roll	$5,		%ecx.byte 209.byte 207		/* rorl $1 %edi */	addl	%ebp,		%ecx.byte 209.byte 207		/* rorl $1 %edi */	addl	%ecx,		%ebx	/* 20_39 28 */	movl	48(%esp),	%ecx	movl	56(%esp),	%ebp	xorl	%ebp,		%ecx	movl	16(%esp),	%ebp	xorl	%ebp,		%ecx	movl	36(%esp),	%ebp	xorl	%ebp,		%ecx	movl	%edx,		%ebp.byte 209

⌨️ 快捷键说明

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