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

📄 x86w32.asm

📁 安全套接字层
💻 ASM
字号:
;	Static Name Aliases;	TITLE   bn_mulw.c	.386F_TEXT	SEGMENT  WORD USE16 PUBLIC 'CODE'F_TEXT	ENDS_DATA	SEGMENT  WORD USE16 PUBLIC 'DATA'_DATA	ENDS_CONST	SEGMENT  WORD USE16 PUBLIC 'CONST'_CONST	ENDS_BSS	SEGMENT  WORD USE16 PUBLIC 'BSS'_BSS	ENDSDGROUP	GROUP	_CONST, _BSS, _DATA	ASSUME DS: DGROUP, SS: DGROUPF_TEXT      SEGMENT	ASSUME	CS: F_TEXT	PUBLIC	_bn_mul_add_words_bn_mul_add_words	PROC FAR; Line 58	push	bp	push	bx	push	esi	push	di	push	ds	push	es	mov	bp,sp;	w = 28;	num = 26;	ap = 22;	rp = 18	xor	esi,esi			;c=0;	mov	di,WORD PTR [bp+18]	; load r	mov	ds,WORD PTR [bp+20]	; load r	mov	bx,WORD PTR [bp+22]	; load a	mov	es,WORD PTR [bp+24]	; load a	mov	ecx,DWORD PTR [bp+28]	; load w	mov	bp,WORD PTR [bp+26]	; load num	shr	bp,1	; div count by 4 and do groups of 4	shr	bp,1	je	$L555$L546:	mov	eax,ecx	mul	DWORD PTR es:[bx]	; w* *a	add	eax,DWORD PTR ds:[di]	; + *r	adc	edx,0	adc	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di],eax	mov	esi,edx	;	mov	eax,ecx	mul	DWORD PTR es:[bx+4]	; w* *a	add	eax,DWORD PTR ds:[di+4]	; + *r	adc	edx,0	adc	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+4],eax	mov	esi,edx	;	mov	eax,ecx	mul	DWORD PTR es:[bx+8]	; w* *a	add	eax,DWORD PTR ds:[di+8]	; + *r	adc	edx,0	adc	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+8],eax	mov	esi,edx	;	mov	eax,ecx	mul	DWORD PTR es:[bx+12]	; w* *a	add	eax,DWORD PTR ds:[di+12]	; + *r	adc	edx,0	adc	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+12],eax	mov	esi,edx	;	add	bx,16	add	di,16	;	dec	bp	je	$L555	jmp	$L546;;$L555:	mov	bp,sp	mov	bp,WORD PTR [bp+26]	; load num	and	bp,3	dec	bp	js	$L547m	mov	eax,ecx	mul	DWORD PTR es:[bx]	; w* *a	add	eax,DWORD PTR ds:[di]	; + *r	adc	edx,0	adc	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di],eax	mov	esi,edx	dec	bp	js	$L547m			; Note that we are now testing for -1	;	mov	eax,ecx	mul	DWORD PTR es:[bx+4]	; w* *a	add	eax,DWORD PTR ds:[di+4]	; + *r	adc	edx,0	adc	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+4],eax	mov	esi,edx	dec	bp	js	$L547m	;	mov	eax,ecx	mul	DWORD PTR es:[bx+8]	; w* *a	add	eax,DWORD PTR ds:[di+8]	; + *r	adc	edx,0	adc	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+8],eax	mov	esi,edx$L547m:	mov	eax,esi	mov	edx,esi	shr	edx,16	pop	es	pop	ds	pop	di	pop	esi	pop	bx	pop	bp	ret		nop	_bn_mul_add_words	ENDP	PUBLIC	_bn_mul_words_bn_mul_words	PROC FAR; Line 76	push	bp	push	bx	push	esi	push	di	push	ds	push	es	xor	esi,esi	mov	bp,sp	mov	di,WORD PTR [bp+18]	; r	mov	ds,WORD PTR [bp+20]	mov	bx,WORD PTR [bp+22]	; a	mov	es,WORD PTR [bp+24]	mov	ecx,DWORD PTR [bp+28]	; w	mov	bp,WORD PTR [bp+26]	; num $FC743:	mov	eax,ecx	mul	DWORD PTR es:[bx]	add	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di],eax	mov	esi,edx	dec	bp	je	$L764	;	mov	eax,ecx	mul	DWORD PTR es:[bx+4]	add	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+4],eax	mov	esi,edx	dec	bp	je	$L764	;	mov	eax,ecx	mul	DWORD PTR es:[bx+8]	add	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+8],eax	mov	esi,edx	dec	bp	je	$L764	;	mov	eax,ecx	mul	DWORD PTR es:[bx+12]	add	eax,esi	adc	edx,0	mov	DWORD PTR ds:[di+12],eax	mov	esi,edx	dec	bp	je	$L764	;	add	bx,16	add	di,16	jmp	$FC743	nop$L764:	mov	eax,esi	mov	edx,esi	shr	edx,16	pop	es	pop	ds	pop	di	pop	esi	pop	bx	pop	bp	ret		nop	_bn_mul_words	ENDP	PUBLIC	_bn_sqr_words_bn_sqr_words	PROC FAR; Line 92	push	bp	push	bx	push	si	push	di	push	ds	push	es	mov	bp,sp	mov	si,WORD PTR [bp+16]	mov	ds,WORD PTR [bp+18]	mov	di,WORD PTR [bp+20]	mov	es,WORD PTR [bp+22]	mov	bx,WORD PTR [bp+24]	mov	bp,bx	; save a memory lookup later	shr	bx,1	; div count by 4 and do groups of 4	shr	bx,1	je	$L666$L765:	mov	eax,DWORD PTR es:[di]	mul	eax	mov	DWORD PTR ds:[si],eax	mov	DWORD PTR ds:[si+4],edx	;	mov	eax,DWORD PTR es:[di+4]	mul	eax	mov	DWORD PTR ds:[si+8],eax	mov	DWORD PTR ds:[si+12],edx	;	mov	eax,DWORD PTR es:[di+8]	mul	eax	mov	DWORD PTR ds:[si+16],eax	mov	DWORD PTR ds:[si+20],edx	;	mov	eax,DWORD PTR es:[di+12]	mul	eax	mov	DWORD PTR ds:[si+24],eax	mov	DWORD PTR ds:[si+28],edx	;	add	di,16	add	si,32	dec	bx	je	$L666	jmp	$L765$L666:	and	bp,3	dec	bp	; The copied value of bx (num)	js	$L645	;	mov	eax,DWORD PTR es:[di]	mul	eax	mov	DWORD PTR ds:[si],eax	mov	DWORD PTR ds:[si+4],edx	dec	bp	js	$L645	;	mov	eax,DWORD PTR es:[di+4]	mul	eax	mov	DWORD PTR ds:[si+8],eax	mov	DWORD PTR ds:[si+12],edx	dec	bp	js	$L645	;	mov	eax,DWORD PTR es:[di+8]	mul	eax	mov	DWORD PTR ds:[si+16],eax	mov	DWORD PTR ds:[si+20],edx$L645:	pop	es	pop	ds	pop	di	pop	si	pop	bx	pop	bp	ret	_bn_sqr_words	ENDP	PUBLIC	_bn_div64_bn_div64	PROC FAR	push	bp	mov	bp,sp	mov	edx, DWORD PTR [bp+6]	mov	eax, DWORD PTR [bp+10]	div	DWORD PTR [bp+14]	mov	edx,eax	shr	edx,16	pop	bp	ret	_bn_div64	ENDP	PUBLIC	_bn_add_words_bn_add_words	PROC FAR; Line 58	push	bp	push	bx	push	esi	push	di	push	ds	push	es	mov	bp,sp;	w = 28;	num = 26;	ap = 22;	rp = 18	xor	esi,esi			;c=0;	mov	bx,WORD PTR [bp+18]	; load low r	mov	si,WORD PTR [bp+22]	; load a	mov	es,WORD PTR [bp+24]	; load a	mov	di,WORD PTR [bp+26]	; load b	mov	ds,WORD PTR [bp+28]	; load b	mov	dx,WORD PTR [bp+30]	; load num	xor	ecx,ecx	dec	dx	js	$L547a$L5477:	mov	eax,DWORD PTR es:[si]	; *a	add	eax,ecx	mov	ecx,0	adc	ecx,0	add	si,4			; a++	add	eax,DWORD PTR ds:[di]	; + *b	adc	ecx,0	mov	ds,WORD PTR [bp+20]	add	di,4	mov	DWORD PTR ds:[bx],eax	mov	ds,WORD PTR [bp+28]	add	bx,4	dec	dx	js	$L547a			; Note that we are now testing for -1	jmp	$L5477	;$L547a:	mov	eax,ecx	mov	edx,ecx	shr	edx,16	pop	es	pop	ds	pop	di	pop	esi	pop	bx	pop	bp	ret		nop	_bn_add_words	ENDPF_TEXT	ENDSEND

⌨️ 快捷键说明

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