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

📄 bn86unix.cpp

📁 一个用于点对点传输加密的工具包源码
💻 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) && !defined(ELF))#define bn_mul_add_words _bn_mul_add_words#define bn_mul_words _bn_mul_words#define bn_sqr_words _bn_sqr_words#define bn_div_words _bn_div_words#define bn_add_words _bn_add_words#define bn_sub_words _bn_sub_words#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 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"	.version	"01.01"gcc2_compiled.:.text	.align ALIGN.globl bn_mul_add_words	TYPE(bn_mul_add_words,@function)bn_mul_add_words:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	xorl	%esi,		%esi	movl	20(%esp),	%edi	movl	28(%esp),	%ecx	movl	24(%esp),	%ebx	andl	$4294967288,	%ecx	movl	32(%esp),	%ebp	pushl	%ecx	jz	.L000maw_finish.L001maw_loop:	movl	%ecx,		(%esp)	/* Round 0 */	movl	(%ebx),		%eax	mull	%ebp	addl	%esi,		%eax	movl	(%edi),		%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		(%edi)	movl	%edx,		%esi	/* Round 4 */	movl	4(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	4(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		4(%edi)	movl	%edx,		%esi	/* Round 8 */	movl	8(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	8(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		8(%edi)	movl	%edx,		%esi	/* Round 12 */	movl	12(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	12(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		12(%edi)	movl	%edx,		%esi	/* Round 16 */	movl	16(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	16(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		16(%edi)	movl	%edx,		%esi	/* Round 20 */	movl	20(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	20(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		20(%edi)	movl	%edx,		%esi	/* Round 24 */	movl	24(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	24(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		24(%edi)	movl	%edx,		%esi	/* Round 28 */	movl	28(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	28(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		28(%edi)	movl	%edx,		%esi	movl	(%esp),		%ecx	addl	$32,		%ebx	addl	$32,		%edi	subl	$8,		%ecx	jnz	.L001maw_loop.L000maw_finish:	movl	32(%esp),	%ecx	andl	$7,		%ecx	jnz	.L002maw_finish2	jmp	.L003maw_end.align ALIGN.L002maw_finish2:	/* Tail Round 0 */	movl	(%ebx),		%eax	mull	%ebp	addl	%esi,		%eax	movl	(%edi),		%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	decl	%ecx	movl	%eax,		(%edi)	movl	%edx,		%esi	jz	.L003maw_end	/* Tail Round 1 */	movl	4(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	4(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	decl	%ecx	movl	%eax,		4(%edi)	movl	%edx,		%esi	jz	.L003maw_end	/* Tail Round 2 */	movl	8(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	8(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	decl	%ecx	movl	%eax,		8(%edi)	movl	%edx,		%esi	jz	.L003maw_end	/* Tail Round 3 */	movl	12(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	12(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	decl	%ecx	movl	%eax,		12(%edi)	movl	%edx,		%esi	jz	.L003maw_end	/* Tail Round 4 */	movl	16(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	16(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	decl	%ecx	movl	%eax,		16(%edi)	movl	%edx,		%esi	jz	.L003maw_end	/* Tail Round 5 */	movl	20(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	20(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	decl	%ecx	movl	%eax,		20(%edi)	movl	%edx,		%esi	jz	.L003maw_end	/* Tail Round 6 */	movl	24(%ebx),	%eax	mull	%ebp	addl	%esi,		%eax	movl	24(%edi),	%esi	adcl	$0,		%edx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		24(%edi)	movl	%edx,		%esi.L003maw_end:	movl	%esi,		%eax	popl	%ecx	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.bn_mul_add_words_end:	SIZE(bn_mul_add_words,.bn_mul_add_words_end-bn_mul_add_words).ident	"bn_mul_add_words".text	.align ALIGN.globl bn_mul_words	TYPE(bn_mul_words,@function)bn_mul_words:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	xorl	%esi,		%esi	movl	20(%esp),	%edi	movl	24(%esp),	%ebx	movl	28(%esp),	%ebp	movl	32(%esp),	%ecx	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	adcl	$0,		%edx	movl	%eax,		28(%edi)	movl	%edx,		%esi	addl	$32,		%ebx	addl	$32,		%edi	subl	$8,		%ebp	jz	.L004mw_finish	jmp	.L005mw_loop.L004mw_finish:	movl	28(%esp),	%ebp	andl	$7,		%ebp	jnz	.L006mw_finish2	jmp	.L007mw_end.align ALIGN.L006mw_finish2:	/* Tail Round 0 */	movl	(%ebx),		%eax	mull	%ecx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		(%edi)	movl	%edx,		%esi	decl	%ebp	jz	.L007mw_end	/* Tail Round 1 */	movl	4(%ebx),	%eax	mull	%ecx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		4(%edi)	movl	%edx,		%esi	decl	%ebp	jz	.L007mw_end	/* Tail Round 2 */	movl	8(%ebx),	%eax	mull	%ecx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		8(%edi)	movl	%edx,		%esi	decl	%ebp	jz	.L007mw_end	/* Tail Round 3 */	movl	12(%ebx),	%eax	mull	%ecx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		12(%edi)	movl	%edx,		%esi	decl	%ebp	jz	.L007mw_end	/* Tail Round 4 */	movl	16(%ebx),	%eax	mull	%ecx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		16(%edi)	movl	%edx,		%esi	decl	%ebp	jz	.L007mw_end	/* Tail Round 5 */	movl	20(%ebx),	%eax	mull	%ecx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		20(%edi)	movl	%edx,		%esi	decl	%ebp	jz	.L007mw_end	/* Tail Round 6 */	movl	24(%ebx),	%eax	mull	%ecx	addl	%esi,		%eax	adcl	$0,		%edx	movl	%eax,		24(%edi)	movl	%edx,		%esi.L007mw_end:	movl	%esi,		%eax	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.bn_mul_words_end:	SIZE(bn_mul_words,.bn_mul_words_end-bn_mul_words).ident	"bn_mul_words".text	.align ALIGN.globl bn_sqr_words	TYPE(bn_sqr_words,@function)bn_sqr_words:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	movl	20(%esp),	%esi	movl	24(%esp),	%edi	movl	28(%esp),	%ebx	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)

⌨️ 快捷键说明

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