bn86unix.cpp

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

CPP
938
字号
	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)	movl	%edx,		60(%esi)	addl	$32,		%edi	addl	$64,		%esi	subl	$8,		%ebx	jnz	.L009sw_loop.L008sw_finish:	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)	movl	%edx,		52(%esi).L010sw_end:	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.bn_sqr_words_end:	SIZE(bn_sqr_words,.bn_sqr_words_end-bn_sqr_words).ident	"bn_sqr_words".text	.align ALIGN.globl bn_div_words	TYPE(bn_div_words,@function)bn_div_words:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	movl	20(%esp),	%edx	movl	24(%esp),	%eax	movl	28(%esp),	%ebx	divl	%ebx	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.bn_div_words_end:	SIZE(bn_div_words,.bn_div_words_end-bn_div_words).ident	"bn_div_words".text	.align ALIGN.globl bn_add_words	TYPE(bn_add_words,@function)bn_add_words:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	movl	20(%esp),	%ebx	movl	24(%esp),	%esi	movl	28(%esp),	%edi	movl	32(%esp),	%ebp	xorl	%eax,		%eax	andl	$4294967288,	%ebp	jz	.L011aw_finish.L012aw_loop:	/* Round 0 */	movl	(%esi),		%ecx	movl	(%edi),		%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		(%ebx)	/* Round 1 */	movl	4(%esi),	%ecx	movl	4(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		4(%ebx)	/* Round 2 */	movl	8(%esi),	%ecx	movl	8(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		8(%ebx)	/* Round 3 */	movl	12(%esi),	%ecx	movl	12(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		12(%ebx)	/* Round 4 */	movl	16(%esi),	%ecx	movl	16(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		16(%ebx)	/* Round 5 */	movl	20(%esi),	%ecx	movl	20(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		20(%ebx)	/* Round 6 */	movl	24(%esi),	%ecx	movl	24(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		24(%ebx)	/* Round 7 */	movl	28(%esi),	%ecx	movl	28(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		28(%ebx)	addl	$32,		%esi	addl	$32,		%edi	addl	$32,		%ebx	subl	$8,		%ebp	jnz	.L012aw_loop.L011aw_finish:	movl	32(%esp),	%ebp	andl	$7,		%ebp	jz	.L013aw_end	/* Tail Round 0 */	movl	(%esi),		%ecx	movl	(%edi),		%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		(%ebx)	jz	.L013aw_end	/* Tail Round 1 */	movl	4(%esi),	%ecx	movl	4(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		4(%ebx)	jz	.L013aw_end	/* Tail Round 2 */	movl	8(%esi),	%ecx	movl	8(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		8(%ebx)	jz	.L013aw_end	/* Tail Round 3 */	movl	12(%esi),	%ecx	movl	12(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		12(%ebx)	jz	.L013aw_end	/* Tail Round 4 */	movl	16(%esi),	%ecx	movl	16(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		16(%ebx)	jz	.L013aw_end	/* Tail Round 5 */	movl	20(%esi),	%ecx	movl	20(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		20(%ebx)	jz	.L013aw_end	/* Tail Round 6 */	movl	24(%esi),	%ecx	movl	24(%edi),	%edx	addl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	addl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		24(%ebx).L013aw_end:	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.bn_add_words_end:	SIZE(bn_add_words,.bn_add_words_end-bn_add_words).ident	"bn_add_words".text	.align ALIGN.globl bn_sub_words	TYPE(bn_sub_words,@function)bn_sub_words:	pushl	%ebp	pushl	%ebx	pushl	%esi	pushl	%edi	movl	20(%esp),	%ebx	movl	24(%esp),	%esi	movl	28(%esp),	%edi	movl	32(%esp),	%ebp	xorl	%eax,		%eax	andl	$4294967288,	%ebp	jz	.L014aw_finish.L015aw_loop:	/* Round 0 */	movl	(%esi),		%ecx	movl	(%edi),		%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		(%ebx)	/* Round 1 */	movl	4(%esi),	%ecx	movl	4(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		4(%ebx)	/* Round 2 */	movl	8(%esi),	%ecx	movl	8(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		8(%ebx)	/* Round 3 */	movl	12(%esi),	%ecx	movl	12(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		12(%ebx)	/* Round 4 */	movl	16(%esi),	%ecx	movl	16(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		16(%ebx)	/* Round 5 */	movl	20(%esi),	%ecx	movl	20(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		20(%ebx)	/* Round 6 */	movl	24(%esi),	%ecx	movl	24(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		24(%ebx)	/* Round 7 */	movl	28(%esi),	%ecx	movl	28(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		28(%ebx)	addl	$32,		%esi	addl	$32,		%edi	addl	$32,		%ebx	subl	$8,		%ebp	jnz	.L015aw_loop.L014aw_finish:	movl	32(%esp),	%ebp	andl	$7,		%ebp	jz	.L016aw_end	/* Tail Round 0 */	movl	(%esi),		%ecx	movl	(%edi),		%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		(%ebx)	jz	.L016aw_end	/* Tail Round 1 */	movl	4(%esi),	%ecx	movl	4(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		4(%ebx)	jz	.L016aw_end	/* Tail Round 2 */	movl	8(%esi),	%ecx	movl	8(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		8(%ebx)	jz	.L016aw_end	/* Tail Round 3 */	movl	12(%esi),	%ecx	movl	12(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		12(%ebx)	jz	.L016aw_end	/* Tail Round 4 */	movl	16(%esi),	%ecx	movl	16(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		16(%ebx)	jz	.L016aw_end	/* Tail Round 5 */	movl	20(%esi),	%ecx	movl	20(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	decl	%ebp	movl	%ecx,		20(%ebx)	jz	.L016aw_end	/* Tail Round 6 */	movl	24(%esi),	%ecx	movl	24(%edi),	%edx	subl	%eax,		%ecx	movl	$0,		%eax	adcl	%eax,		%eax	subl	%edx,		%ecx	adcl	$0,		%eax	movl	%ecx,		24(%ebx).L016aw_end:	popl	%edi	popl	%esi	popl	%ebx	popl	%ebp	ret.bn_sub_words_end:	SIZE(bn_sub_words,.bn_sub_words_end-bn_sub_words).ident	"bn_sub_words"

⌨️ 快捷键说明

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