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

📄 bn-win32.asm

📁 老外写的加密库cryptlib(版本3.1)
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	mov	edi,		[20+esp]	push	ebp	push	ebx	xor	ebx,		ebx	mov	eax,		[esi]	xor	ecx,		ecx	mov	edx,		[edi]	; ################## Calculate word 0	xor	ebp,		ebp	; mul a[0]*b[0]	mul	edx	add	ebx,		eax	mov	eax,		[20+esp]	adc	ecx,		edx	mov	edx,		[edi]	adc	ebp,		0	mov	[eax],		ebx	mov	eax,		[4+esi]	; saved r[0]	; ################## Calculate word 1	xor	ebx,		ebx	; mul a[1]*b[0]	mul	edx	add	ecx,		eax	mov	eax,		[esi]	adc	ebp,		edx	mov	edx,		[4+edi]	adc	ebx,		0	; mul a[0]*b[1]	mul	edx	add	ecx,		eax	mov	eax,		[20+esp]	adc	ebp,		edx	mov	edx,		[edi]	adc	ebx,		0	mov	[4+eax],	ecx	mov	eax,		[8+esi]	; saved r[1]	; ################## Calculate word 2	xor	ecx,		ecx	; mul a[2]*b[0]	mul	edx	add	ebp,		eax	mov	eax,		[4+esi]	adc	ebx,		edx	mov	edx,		[4+edi]	adc	ecx,		0	; mul a[1]*b[1]	mul	edx	add	ebp,		eax	mov	eax,		[esi]	adc	ebx,		edx	mov	edx,		[8+edi]	adc	ecx,		0	; mul a[0]*b[2]	mul	edx	add	ebp,		eax	mov	eax,		[20+esp]	adc	ebx,		edx	mov	edx,		[edi]	adc	ecx,		0	mov	[8+eax],	ebp	mov	eax,		[12+esi]	; saved r[2]	; ################## Calculate word 3	xor	ebp,		ebp	; mul a[3]*b[0]	mul	edx	add	ebx,		eax	mov	eax,		[8+esi]	adc	ecx,		edx	mov	edx,		[4+edi]	adc	ebp,		0	; mul a[2]*b[1]	mul	edx	add	ebx,		eax	mov	eax,		[4+esi]	adc	ecx,		edx	mov	edx,		[8+edi]	adc	ebp,		0	; mul a[1]*b[2]	mul	edx	add	ebx,		eax	mov	eax,		[esi]	adc	ecx,		edx	mov	edx,		[12+edi]	adc	ebp,		0	; mul a[0]*b[3]	mul	edx	add	ebx,		eax	mov	eax,		[20+esp]	adc	ecx,		edx	mov	edx,		[4+edi]	adc	ebp,		0	mov	[12+eax],	ebx	mov	eax,		[12+esi]	; saved r[3]	; ################## Calculate word 4	xor	ebx,		ebx	; mul a[3]*b[1]	mul	edx	add	ecx,		eax	mov	eax,		[8+esi]	adc	ebp,		edx	mov	edx,		[8+edi]	adc	ebx,		0	; mul a[2]*b[2]	mul	edx	add	ecx,		eax	mov	eax,		[4+esi]	adc	ebp,		edx	mov	edx,		[12+edi]	adc	ebx,		0	; mul a[1]*b[3]	mul	edx	add	ecx,		eax	mov	eax,		[20+esp]	adc	ebp,		edx	mov	edx,		[8+edi]	adc	ebx,		0	mov	[16+eax],	ecx	mov	eax,		[12+esi]	; saved r[4]	; ################## Calculate word 5	xor	ecx,		ecx	; mul a[3]*b[2]	mul	edx	add	ebp,		eax	mov	eax,		[8+esi]	adc	ebx,		edx	mov	edx,		[12+edi]	adc	ecx,		0	; mul a[2]*b[3]	mul	edx	add	ebp,		eax	mov	eax,		[20+esp]	adc	ebx,		edx	mov	edx,		[12+edi]	adc	ecx,		0	mov	[20+eax],	ebp	mov	eax,		[12+esi]	; saved r[5]	; ################## Calculate word 6	xor	ebp,		ebp	; mul a[3]*b[3]	mul	edx	add	ebx,		eax	mov	eax,		[20+esp]	adc	ecx,		edx	adc	ebp,		0	mov	[24+eax],	ebx	; saved r[6]	; save r[7]	mov	[28+eax],	ecx	pop	ebx	pop	ebp	pop	edi	pop	esi	retglobal	_bn_sqr_comba8_bn_sqr_comba8:	push	esi	push	edi	push	ebp	push	ebx	mov	edi,		[20+esp]	mov	esi,		[24+esp]	xor	ebx,		ebx	xor	ecx,		ecx	mov	eax,		[esi]	; ############### Calculate word 0	xor	ebp,		ebp	; sqr a[0]*a[0]	mul	eax	add	ebx,		eax	adc	ecx,		edx	mov	edx,		[esi]	adc	ebp,		0	mov	[edi],		ebx	mov	eax,		[4+esi]	; saved r[0]	; ############### Calculate word 1	xor	ebx,		ebx	; sqr a[1]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[8+esi]	adc	ebx,		0	mov	[4+edi],	ecx	mov	edx,		[esi]	; saved r[1]	; ############### Calculate word 2	xor	ecx,		ecx	; sqr a[2]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[4+esi]	adc	ecx,		0	; sqr a[1]*a[1]	mul	eax	add	ebp,		eax	adc	ebx,		edx	mov	edx,		[esi]	adc	ecx,		0	mov	[8+edi],	ebp	mov	eax,		[12+esi]	; saved r[2]	; ############### Calculate word 3	xor	ebp,		ebp	; sqr a[3]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[8+esi]	adc	ebp,		0	mov	edx,		[4+esi]	; sqr a[2]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[16+esi]	adc	ebp,		0	mov	[12+edi],	ebx	mov	edx,		[esi]	; saved r[3]	; ############### Calculate word 4	xor	ebx,		ebx	; sqr a[4]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[12+esi]	adc	ebx,		0	mov	edx,		[4+esi]	; sqr a[3]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[8+esi]	adc	ebx,		0	; sqr a[2]*a[2]	mul	eax	add	ecx,		eax	adc	ebp,		edx	mov	edx,		[esi]	adc	ebx,		0	mov	[16+edi],	ecx	mov	eax,		[20+esi]	; saved r[4]	; ############### Calculate word 5	xor	ecx,		ecx	; sqr a[5]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[16+esi]	adc	ecx,		0	mov	edx,		[4+esi]	; sqr a[4]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[12+esi]	adc	ecx,		0	mov	edx,		[8+esi]	; sqr a[3]*a[2]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[24+esi]	adc	ecx,		0	mov	[20+edi],	ebp	mov	edx,		[esi]	; saved r[5]	; ############### Calculate word 6	xor	ebp,		ebp	; sqr a[6]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[20+esi]	adc	ebp,		0	mov	edx,		[4+esi]	; sqr a[5]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[16+esi]	adc	ebp,		0	mov	edx,		[8+esi]	; sqr a[4]*a[2]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[12+esi]	adc	ebp,		0	; sqr a[3]*a[3]	mul	eax	add	ebx,		eax	adc	ecx,		edx	mov	edx,		[esi]	adc	ebp,		0	mov	[24+edi],	ebx	mov	eax,		[28+esi]	; saved r[6]	; ############### Calculate word 7	xor	ebx,		ebx	; sqr a[7]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[24+esi]	adc	ebx,		0	mov	edx,		[4+esi]	; sqr a[6]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[20+esi]	adc	ebx,		0	mov	edx,		[8+esi]	; sqr a[5]*a[2]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[16+esi]	adc	ebx,		0	mov	edx,		[12+esi]	; sqr a[4]*a[3]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[28+esi]	adc	ebx,		0	mov	[28+edi],	ecx	mov	edx,		[4+esi]	; saved r[7]	; ############### Calculate word 8	xor	ecx,		ecx	; sqr a[7]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[24+esi]	adc	ecx,		0	mov	edx,		[8+esi]	; sqr a[6]*a[2]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[20+esi]	adc	ecx,		0	mov	edx,		[12+esi]	; sqr a[5]*a[3]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[16+esi]	adc	ecx,		0	; sqr a[4]*a[4]	mul	eax	add	ebp,		eax	adc	ebx,		edx	mov	edx,		[8+esi]	adc	ecx,		0	mov	[32+edi],	ebp	mov	eax,		[28+esi]	; saved r[8]	; ############### Calculate word 9	xor	ebp,		ebp	; sqr a[7]*a[2]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[24+esi]	adc	ebp,		0	mov	edx,		[12+esi]	; sqr a[6]*a[3]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[20+esi]	adc	ebp,		0	mov	edx,		[16+esi]	; sqr a[5]*a[4]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[28+esi]	adc	ebp,		0	mov	[36+edi],	ebx	mov	edx,		[12+esi]	; saved r[9]	; ############### Calculate word 10	xor	ebx,		ebx	; sqr a[7]*a[3]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[24+esi]	adc	ebx,		0	mov	edx,		[16+esi]	; sqr a[6]*a[4]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[20+esi]	adc	ebx,		0	; sqr a[5]*a[5]	mul	eax	add	ecx,		eax	adc	ebp,		edx	mov	edx,		[16+esi]	adc	ebx,		0	mov	[40+edi],	ecx	mov	eax,		[28+esi]	; saved r[10]	; ############### Calculate word 11	xor	ecx,		ecx	; sqr a[7]*a[4]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[24+esi]	adc	ecx,		0	mov	edx,		[20+esi]	; sqr a[6]*a[5]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[28+esi]	adc	ecx,		0	mov	[44+edi],	ebp	mov	edx,		[20+esi]	; saved r[11]	; ############### Calculate word 12	xor	ebp,		ebp	; sqr a[7]*a[5]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[24+esi]	adc	ebp,		0	; sqr a[6]*a[6]	mul	eax	add	ebx,		eax	adc	ecx,		edx	mov	edx,		[24+esi]	adc	ebp,		0	mov	[48+edi],	ebx	mov	eax,		[28+esi]	; saved r[12]	; ############### Calculate word 13	xor	ebx,		ebx	; sqr a[7]*a[6]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[28+esi]	adc	ebx,		0	mov	[52+edi],	ecx	; saved r[13]	; ############### Calculate word 14	xor	ecx,		ecx	; sqr a[7]*a[7]	mul	eax	add	ebp,		eax	adc	ebx,		edx	adc	ecx,		0	mov	[56+edi],	ebp	; saved r[14]	mov	[60+edi],	ebx	pop	ebx	pop	ebp	pop	edi	pop	esi	retglobal	_bn_sqr_comba4_bn_sqr_comba4:	push	esi	push	edi	push	ebp	push	ebx	mov	edi,		[20+esp]	mov	esi,		[24+esp]	xor	ebx,		ebx	xor	ecx,		ecx	mov	eax,		[esi]	; ############### Calculate word 0	xor	ebp,		ebp	; sqr a[0]*a[0]	mul	eax	add	ebx,		eax	adc	ecx,		edx	mov	edx,		[esi]	adc	ebp,		0	mov	[edi],		ebx	mov	eax,		[4+esi]	; saved r[0]	; ############### Calculate word 1	xor	ebx,		ebx	; sqr a[1]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[8+esi]	adc	ebx,		0	mov	[4+edi],	ecx	mov	edx,		[esi]	; saved r[1]	; ############### Calculate word 2	xor	ecx,		ecx	; sqr a[2]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[4+esi]	adc	ecx,		0	; sqr a[1]*a[1]	mul	eax	add	ebp,		eax	adc	ebx,		edx	mov	edx,		[esi]	adc	ecx,		0	mov	[8+edi],	ebp	mov	eax,		[12+esi]	; saved r[2]	; ############### Calculate word 3	xor	ebp,		ebp	; sqr a[3]*a[0]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[8+esi]	adc	ebp,		0	mov	edx,		[4+esi]	; sqr a[2]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebp,		0	add	ebx,		eax	adc	ecx,		edx	mov	eax,		[12+esi]	adc	ebp,		0	mov	[12+edi],	ebx	mov	edx,		[4+esi]	; saved r[3]	; ############### Calculate word 4	xor	ebx,		ebx	; sqr a[3]*a[1]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ebx,		0	add	ecx,		eax	adc	ebp,		edx	mov	eax,		[8+esi]	adc	ebx,		0	; sqr a[2]*a[2]	mul	eax	add	ecx,		eax	adc	ebp,		edx	mov	edx,		[8+esi]	adc	ebx,		0	mov	[16+edi],	ecx	mov	eax,		[12+esi]	; saved r[4]	; ############### Calculate word 5	xor	ecx,		ecx	; sqr a[3]*a[2]	mul	edx	add	eax,		eax	adc	edx,		edx	adc	ecx,		0	add	ebp,		eax	adc	ebx,		edx	mov	eax,		[12+esi]	adc	ecx,		0	mov	[20+edi],	ebp	; saved r[5]	; ############### Calculate word 6	xor	ebp,		ebp	; sqr a[3]*a[3]	mul	eax	add	ebx,		eax	adc	ecx,		edx	adc	ebp,		0	mov	[24+edi],	ebx	; saved r[6]	mov	[28+edi],	ecx	pop	ebx	pop	ebp	pop	edi	pop	esi	ret

⌨️ 快捷键说明

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