mx86unix.cpp

来自「一个用于点对点传输加密的工具包源码」· C++ 代码 · 共 732 行

CPP
732
字号
/* 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 md5_block_asm_host_order _md5_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 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"	.version	"01.01"gcc2_compiled.:.text	.align ALIGN.globl md5_block_asm_host_order	TYPE(md5_block_asm_host_order,@function)md5_block_asm_host_order:	pushl	%esi	pushl	%edi	movl	12(%esp),	%edi	movl	16(%esp),	%esi	movl	20(%esp),	%ecx	pushl	%ebp	sall	$6,		%ecx	pushl	%ebx	addl	%esi,		%ecx	subl	$64,		%ecx	movl	(%edi),		%eax	pushl	%ecx	movl	4(%edi),	%ebx	movl	8(%edi),	%ecx	movl	12(%edi),	%edx.L000start:	/* R0 section */	movl	%ecx,		%edi	movl	(%esi),		%ebp	/* R0 0 */	xorl	%edx,		%edi	andl	%ebx,		%edi	leal	3614090360(%eax,%ebp,1),%eax	xorl	%edx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$7,		%eax	movl	4(%esi),	%ebp	addl	%ebx,		%eax	/* R0 1 */	xorl	%ecx,		%edi	andl	%eax,		%edi	leal	3905402710(%edx,%ebp,1),%edx	xorl	%ecx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$12,		%edx	movl	8(%esi),	%ebp	addl	%eax,		%edx	/* R0 2 */	xorl	%ebx,		%edi	andl	%edx,		%edi	leal	606105819(%ecx,%ebp,1),%ecx	xorl	%ebx,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$17,		%ecx	movl	12(%esi),	%ebp	addl	%edx,		%ecx	/* R0 3 */	xorl	%eax,		%edi	andl	%ecx,		%edi	leal	3250441966(%ebx,%ebp,1),%ebx	xorl	%eax,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$22,		%ebx	movl	16(%esi),	%ebp	addl	%ecx,		%ebx	/* R0 4 */	xorl	%edx,		%edi	andl	%ebx,		%edi	leal	4118548399(%eax,%ebp,1),%eax	xorl	%edx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$7,		%eax	movl	20(%esi),	%ebp	addl	%ebx,		%eax	/* R0 5 */	xorl	%ecx,		%edi	andl	%eax,		%edi	leal	1200080426(%edx,%ebp,1),%edx	xorl	%ecx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$12,		%edx	movl	24(%esi),	%ebp	addl	%eax,		%edx	/* R0 6 */	xorl	%ebx,		%edi	andl	%edx,		%edi	leal	2821735955(%ecx,%ebp,1),%ecx	xorl	%ebx,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$17,		%ecx	movl	28(%esi),	%ebp	addl	%edx,		%ecx	/* R0 7 */	xorl	%eax,		%edi	andl	%ecx,		%edi	leal	4249261313(%ebx,%ebp,1),%ebx	xorl	%eax,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$22,		%ebx	movl	32(%esi),	%ebp	addl	%ecx,		%ebx	/* R0 8 */	xorl	%edx,		%edi	andl	%ebx,		%edi	leal	1770035416(%eax,%ebp,1),%eax	xorl	%edx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$7,		%eax	movl	36(%esi),	%ebp	addl	%ebx,		%eax	/* R0 9 */	xorl	%ecx,		%edi	andl	%eax,		%edi	leal	2336552879(%edx,%ebp,1),%edx	xorl	%ecx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$12,		%edx	movl	40(%esi),	%ebp	addl	%eax,		%edx	/* R0 10 */	xorl	%ebx,		%edi	andl	%edx,		%edi	leal	4294925233(%ecx,%ebp,1),%ecx	xorl	%ebx,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$17,		%ecx	movl	44(%esi),	%ebp	addl	%edx,		%ecx	/* R0 11 */	xorl	%eax,		%edi	andl	%ecx,		%edi	leal	2304563134(%ebx,%ebp,1),%ebx	xorl	%eax,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$22,		%ebx	movl	48(%esi),	%ebp	addl	%ecx,		%ebx	/* R0 12 */	xorl	%edx,		%edi	andl	%ebx,		%edi	leal	1804603682(%eax,%ebp,1),%eax	xorl	%edx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$7,		%eax	movl	52(%esi),	%ebp	addl	%ebx,		%eax	/* R0 13 */	xorl	%ecx,		%edi	andl	%eax,		%edi	leal	4254626195(%edx,%ebp,1),%edx	xorl	%ecx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$12,		%edx	movl	56(%esi),	%ebp	addl	%eax,		%edx	/* R0 14 */	xorl	%ebx,		%edi	andl	%edx,		%edi	leal	2792965006(%ecx,%ebp,1),%ecx	xorl	%ebx,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$17,		%ecx	movl	60(%esi),	%ebp	addl	%edx,		%ecx	/* R0 15 */	xorl	%eax,		%edi	andl	%ecx,		%edi	leal	1236535329(%ebx,%ebp,1),%ebx	xorl	%eax,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$22,		%ebx	movl	4(%esi),	%ebp	addl	%ecx,		%ebx	/* R1 section */	/* R1 16 */	leal	4129170786(%eax,%ebp,1),%eax	xorl	%ebx,		%edi	andl	%edx,		%edi	movl	24(%esi),	%ebp	xorl	%ecx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$5,		%eax	addl	%ebx,		%eax	/* R1 17 */	leal	3225465664(%edx,%ebp,1),%edx	xorl	%eax,		%edi	andl	%ecx,		%edi	movl	44(%esi),	%ebp	xorl	%ebx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$9,		%edx	addl	%eax,		%edx	/* R1 18 */	leal	643717713(%ecx,%ebp,1),%ecx	xorl	%edx,		%edi	andl	%ebx,		%edi	movl	(%esi),		%ebp	xorl	%eax,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$14,		%ecx	addl	%edx,		%ecx	/* R1 19 */	leal	3921069994(%ebx,%ebp,1),%ebx	xorl	%ecx,		%edi	andl	%eax,		%edi	movl	20(%esi),	%ebp	xorl	%edx,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$20,		%ebx	addl	%ecx,		%ebx	/* R1 20 */	leal	3593408605(%eax,%ebp,1),%eax	xorl	%ebx,		%edi	andl	%edx,		%edi	movl	40(%esi),	%ebp	xorl	%ecx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$5,		%eax	addl	%ebx,		%eax	/* R1 21 */	leal	38016083(%edx,%ebp,1),%edx	xorl	%eax,		%edi	andl	%ecx,		%edi	movl	60(%esi),	%ebp	xorl	%ebx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$9,		%edx	addl	%eax,		%edx	/* R1 22 */	leal	3634488961(%ecx,%ebp,1),%ecx	xorl	%edx,		%edi	andl	%ebx,		%edi	movl	16(%esi),	%ebp	xorl	%eax,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$14,		%ecx	addl	%edx,		%ecx	/* R1 23 */	leal	3889429448(%ebx,%ebp,1),%ebx	xorl	%ecx,		%edi	andl	%eax,		%edi	movl	36(%esi),	%ebp	xorl	%edx,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$20,		%ebx	addl	%ecx,		%ebx	/* R1 24 */	leal	568446438(%eax,%ebp,1),%eax	xorl	%ebx,		%edi	andl	%edx,		%edi	movl	56(%esi),	%ebp	xorl	%ecx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$5,		%eax	addl	%ebx,		%eax	/* R1 25 */	leal	3275163606(%edx,%ebp,1),%edx	xorl	%eax,		%edi	andl	%ecx,		%edi	movl	12(%esi),	%ebp	xorl	%ebx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$9,		%edx	addl	%eax,		%edx	/* R1 26 */	leal	4107603335(%ecx,%ebp,1),%ecx	xorl	%edx,		%edi	andl	%ebx,		%edi	movl	32(%esi),	%ebp	xorl	%eax,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$14,		%ecx	addl	%edx,		%ecx	/* R1 27 */	leal	1163531501(%ebx,%ebp,1),%ebx	xorl	%ecx,		%edi	andl	%eax,		%edi	movl	52(%esi),	%ebp	xorl	%edx,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$20,		%ebx	addl	%ecx,		%ebx	/* R1 28 */	leal	2850285829(%eax,%ebp,1),%eax	xorl	%ebx,		%edi	andl	%edx,		%edi	movl	8(%esi),	%ebp	xorl	%ecx,		%edi	addl	%edi,		%eax	movl	%ebx,		%edi	roll	$5,		%eax	addl	%ebx,		%eax	/* R1 29 */	leal	4243563512(%edx,%ebp,1),%edx	xorl	%eax,		%edi	andl	%ecx,		%edi	movl	28(%esi),	%ebp	xorl	%ebx,		%edi	addl	%edi,		%edx	movl	%eax,		%edi	roll	$9,		%edx	addl	%eax,		%edx	/* R1 30 */	leal	1735328473(%ecx,%ebp,1),%ecx	xorl	%edx,		%edi	andl	%ebx,		%edi	movl	48(%esi),	%ebp	xorl	%eax,		%edi	addl	%edi,		%ecx	movl	%edx,		%edi	roll	$14,		%ecx	addl	%edx,		%ecx	/* R1 31 */	leal	2368359562(%ebx,%ebp,1),%ebx	xorl	%ecx,		%edi	andl	%eax,		%edi	movl	20(%esi),	%ebp	xorl	%edx,		%edi	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$20,		%ebx	addl	%ecx,		%ebx	/* R2 section */	/* R2 32 */	xorl	%edx,		%edi	xorl	%ebx,		%edi	leal	4294588738(%eax,%ebp,1),%eax	addl	%edi,		%eax	roll	$4,		%eax	movl	32(%esi),	%ebp	movl	%ebx,		%edi	/* R2 33 */	leal	2272392833(%edx,%ebp,1),%edx	addl	%ebx,		%eax	xorl	%ecx,		%edi	xorl	%eax,		%edi	movl	44(%esi),	%ebp	addl	%edi,		%edx	movl	%eax,		%edi	roll	$11,		%edx	addl	%eax,		%edx	/* R2 34 */	xorl	%ebx,		%edi	xorl	%edx,		%edi	leal	1839030562(%ecx,%ebp,1),%ecx	addl	%edi,		%ecx	roll	$16,		%ecx	movl	56(%esi),	%ebp	movl	%edx,		%edi	/* R2 35 */	leal	4259657740(%ebx,%ebp,1),%ebx	addl	%edx,		%ecx	xorl	%eax,		%edi	xorl	%ecx,		%edi	movl	4(%esi),	%ebp	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$23,		%ebx	addl	%ecx,		%ebx	/* R2 36 */	xorl	%edx,		%edi	xorl	%ebx,		%edi	leal	2763975236(%eax,%ebp,1),%eax	addl	%edi,		%eax	roll	$4,		%eax	movl	16(%esi),	%ebp	movl	%ebx,		%edi	/* R2 37 */	leal	1272893353(%edx,%ebp,1),%edx	addl	%ebx,		%eax	xorl	%ecx,		%edi	xorl	%eax,		%edi	movl	28(%esi),	%ebp	addl	%edi,		%edx	movl	%eax,		%edi	roll	$11,		%edx	addl	%eax,		%edx	/* R2 38 */	xorl	%ebx,		%edi	xorl	%edx,		%edi	leal	4139469664(%ecx,%ebp,1),%ecx	addl	%edi,		%ecx	roll	$16,		%ecx	movl	40(%esi),	%ebp	movl	%edx,		%edi	/* R2 39 */	leal	3200236656(%ebx,%ebp,1),%ebx	addl	%edx,		%ecx	xorl	%eax,		%edi	xorl	%ecx,		%edi	movl	52(%esi),	%ebp	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$23,		%ebx	addl	%ecx,		%ebx	/* R2 40 */	xorl	%edx,		%edi	xorl	%ebx,		%edi	leal	681279174(%eax,%ebp,1),%eax	addl	%edi,		%eax	roll	$4,		%eax	movl	(%esi),		%ebp	movl	%ebx,		%edi	/* R2 41 */	leal	3936430074(%edx,%ebp,1),%edx	addl	%ebx,		%eax	xorl	%ecx,		%edi	xorl	%eax,		%edi	movl	12(%esi),	%ebp	addl	%edi,		%edx	movl	%eax,		%edi	roll	$11,		%edx	addl	%eax,		%edx	/* R2 42 */	xorl	%ebx,		%edi	xorl	%edx,		%edi	leal	3572445317(%ecx,%ebp,1),%ecx	addl	%edi,		%ecx	roll	$16,		%ecx	movl	24(%esi),	%ebp	movl	%edx,		%edi	/* R2 43 */	leal	76029189(%ebx,%ebp,1),%ebx	addl	%edx,		%ecx	xorl	%eax,		%edi	xorl	%ecx,		%edi	movl	36(%esi),	%ebp	addl	%edi,		%ebx	movl	%ecx,		%edi	roll	$23,		%ebx	addl	%ecx,		%ebx	/* R2 44 */	xorl	%edx,		%edi	xorl	%ebx,		%edi	leal	3654602809(%eax,%ebp,1),%eax	addl	%edi,		%eax	roll	$4,		%eax	movl	48(%esi),	%ebp	movl	%ebx,		%edi	/* R2 45 */	leal	3873151461(%edx,%ebp,1),%edx	addl	%ebx,		%eax	xorl	%ecx,		%edi	xorl	%eax,		%edi	movl	60(%esi),	%ebp	addl	%edi,		%edx	movl	%eax,		%edi	roll	$11,		%edx	addl	%eax,		%edx	/* R2 46 */	xorl	%ebx,		%edi	xorl	%edx,		%edi	leal	530742520(%ecx,%ebp,1),%ecx	addl	%edi,		%ecx	roll	$16,		%ecx	movl	8(%esi),	%ebp	movl	%edx,		%edi	/* R2 47 */	leal	3299628645(%ebx,%ebp,1),%ebx	addl	%edx,		%ecx	xorl	%eax,		%edi	xorl	%ecx,		%edi	movl	(%esi),		%ebp	addl	%edi,		%ebx	movl	$-1,		%edi	roll	$23,		%ebx	addl	%ecx,		%ebx	/* R3 section */	/* R3 48 */	xorl	%edx,		%edi	orl	%ebx,		%edi	leal	4096336452(%eax,%ebp,1),%eax	xorl	%ecx,		%edi	movl	28(%esi),	%ebp	addl	%edi,		%eax	movl	$-1,		%edi	roll	$6,		%eax	xorl	%ecx,		%edi	addl	%ebx,		%eax	/* R3 49 */	orl	%eax,		%edi	leal	1126891415(%edx,%ebp,1),%edx	xorl	%ebx,		%edi	movl	56(%esi),	%ebp	addl	%edi,		%edx	movl	$-1,		%edi	roll	$10,		%edx	xorl	%ebx,		%edi	addl	%eax,		%edx	/* R3 50 */	orl	%edx,		%edi	leal	2878612391(%ecx,%ebp,1),%ecx	xorl	%eax,		%edi	movl	20(%esi),	%ebp	addl	%edi,		%ecx	movl	$-1,		%edi	roll	$15,		%ecx	xorl	%eax,		%edi	addl	%edx,		%ecx	/* R3 51 */	orl	%ecx,		%edi	leal	4237533241(%ebx,%ebp,1),%ebx	xorl	%edx,		%edi	movl	48(%esi),	%ebp	addl	%edi,		%ebx	movl	$-1,		%edi	roll	$21,		%ebx	xorl	%edx,		%edi	addl	%ecx,		%ebx	/* R3 52 */	orl	%ebx,		%edi	leal	1700485571(%eax,%ebp,1),%eax	xorl	%ecx,		%edi	movl	12(%esi),	%ebp	addl	%edi,		%eax	movl	$-1,		%edi	roll	$6,		%eax	xorl	%ecx,		%edi	addl	%ebx,		%eax	/* R3 53 */	orl	%eax,		%edi	leal	2399980690(%edx,%ebp,1),%edx	xorl	%ebx,		%edi	movl	40(%esi),	%ebp	addl	%edi,		%edx	movl	$-1,		%edi	roll	$10,		%edx	xorl	%ebx,		%edi	addl	%eax,		%edx	/* R3 54 */	orl	%edx,		%edi	leal	4293915773(%ecx,%ebp,1),%ecx	xorl	%eax,		%edi	movl	4(%esi),	%ebp	addl	%edi,		%ecx	movl	$-1,		%edi	roll	$15,		%ecx	xorl	%eax,		%edi	addl	%edx,		%ecx	/* R3 55 */	orl	%ecx,		%edi	leal	2240044497(%ebx,%ebp,1),%ebx	xorl	%edx,		%edi	movl	32(%esi),	%ebp	addl	%edi,		%ebx	movl	$-1,		%edi	roll	$21,		%ebx	xorl	%edx,		%edi	addl	%ecx,		%ebx	/* R3 56 */	orl	%ebx,		%edi	leal	1873313359(%eax,%ebp,1),%eax	xorl	%ecx,		%edi	movl	60(%esi),	%ebp	addl	%edi,		%eax	movl	$-1,		%edi	roll	$6,		%eax	xorl	%ecx,		%edi	addl	%ebx,		%eax	/* R3 57 */	orl	%eax,		%edi	leal	4264355552(%edx,%ebp,1),%edx	xorl	%ebx,		%edi	movl	24(%esi),	%ebp	addl	%edi,		%edx	movl	$-1,		%edi	roll	$10,		%edx	xorl	%ebx,		%edi	addl	%eax,		%edx	/* R3 58 */	orl	%edx,		%edi	leal	2734768916(%ecx,%ebp,1),%ecx	xorl	%eax,		%edi	movl	52(%esi),	%ebp	addl	%edi,		%ecx	movl	$-1,		%edi	roll	$15,		%ecx	xorl	%eax,		%edi	addl	%edx,		%ecx	/* R3 59 */	orl	%ecx,		%edi	leal	1309151649(%ebx,%ebp,1),%ebx	xorl	%edx,		%edi	movl	16(%esi),	%ebp	addl	%edi,		%ebx	movl	$-1,		%edi	roll	$21,		%ebx	xorl	%edx,		%edi	addl	%ecx,		%ebx	/* R3 60 */	orl	%ebx,		%edi	leal	4149444226(%eax,%ebp,1),%eax	xorl	%ecx,		%edi	movl	44(%esi),	%ebp	addl	%edi,		%eax	movl	$-1,		%edi	roll	$6,		%eax	xorl	%ecx,		%edi	addl	%ebx,		%eax	/* R3 61 */	orl	%eax,		%edi	leal	3174756917(%edx,%ebp,1),%edx	xorl	%ebx,		%edi	movl	8(%esi),	%ebp	addl	%edi,		%edx	movl	$-1,		%edi	roll	$10,		%edx	xorl	%ebx,		%edi	addl	%eax,		%edx	/* R3 62 */	orl	%edx,		%edi	leal	718787259(%ecx,%ebp,1),%ecx	xorl	%eax,		%edi	movl	36(%esi),	%ebp	addl	%edi,		%ecx	movl	$-1,		%edi	roll	$15,		%ecx	xorl	%eax,		%edi	addl	%edx,		%ecx	/* R3 63 */	orl	%ecx,		%edi	leal	3951481745(%ebx,%ebp,1),%ebx	xorl	%edx,		%edi	movl	24(%esp),	%ebp	addl	%edi,		%ebx	addl	$64,		%esi	roll	$21,		%ebx	movl	(%ebp),		%edi	addl	%ecx,		%ebx	addl	%edi,		%eax	movl	4(%ebp),	%edi	addl	%edi,		%ebx	movl	8(%ebp),	%edi	addl	%edi,		%ecx	movl	12(%ebp),	%edi	addl	%edi,		%edx	movl	%eax,		(%ebp)	movl	%ebx,		4(%ebp)	movl	(%esp),		%edi	movl	%ecx,		8(%ebp)	movl	%edx,		12(%ebp)	cmpl	%esi,		%edi	jge	.L000start	popl	%eax	popl	%ebx	popl	%ebp	popl	%edi	popl	%esi	ret.L_md5_block_asm_host_order_end:	SIZE(md5_block_asm_host_order,.L_md5_block_asm_host_order_end-md5_block_asm_host_order).ident	"desasm.pl"

⌨️ 快捷键说明

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