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

📄 rmd320.asm

📁 ASM 多种hash模块,汇编源码 MD2,4,5 SHA 等多种加密算法 还有其他赠送内容
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	RMD320HH edx, esi, eax, ebx, ecx, dword ptr [ebp+14*4], 06, 06d703ef3h
	RMD320HH ecx, edx, esi, eax, ebx, dword ptr [ebp+06*4], 06, 06d703ef3h
	RMD320HH ebx, ecx, edx, esi, eax, dword ptr [ebp+09*4], 14, 06d703ef3h
	RMD320HH eax, ebx, ecx, edx, esi, dword ptr [ebp+11*4], 12, 06d703ef3h
	RMD320HH esi, eax, ebx, ecx, edx, dword ptr [ebp+08*4], 13, 06d703ef3h
	RMD320HH edx, esi, eax, ebx, ecx, dword ptr [ebp+12*4], 05, 06d703ef3h
	RMD320HH ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 14, 06d703ef3h
	RMD320HH ebx, ecx, edx, esi, eax, dword ptr [ebp+10*4], 13, 06d703ef3h
	RMD320HH eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 13, 06d703ef3h
	RMD320HH esi, eax, ebx, ecx, edx, dword ptr [ebp+04*4], 07, 06d703ef3h
	RMD320HH edx, esi, eax, ebx, ecx, dword ptr [ebp+13*4], 05, 06d703ef3h
	;======================================================================
	mov edi,[esp+pushad_size+pushad_ecx]
	mov [esp+pushad_size+pushad_ecx],ecx
	mov ecx,edi
;	xchg ecx,[esp+pushad_size+pushad_ecx]
	mov [esp+pushad_eax],eax;a2
	mov [esp+pushad_ebx],ebx;b2
	mov [esp+pushad_ecx],ecx;c2
	mov [esp+pushad_edx],edx;d2
	mov [esp+pushad_esi],esi;d2
	mov eax,[esp+pushad_size+pushad_eax];a1
	mov ebx,[esp+pushad_size+pushad_ebx];b1
	mov ecx,[esp+pushad_size+pushad_ecx];c1
	mov edx,[esp+pushad_size+pushad_edx];d1
	mov esi,[esp+pushad_size+pushad_esi];d1
	;======================================================================
	RMD320II ecx, edx, esi, eax, ebx, dword ptr [ebp+01*4], 11, 08f1bbcdch
	RMD320II ebx, ecx, edx, esi, eax, dword ptr [ebp+09*4], 12, 08f1bbcdch
	RMD320II eax, ebx, ecx, edx, esi, dword ptr [ebp+11*4], 14, 08f1bbcdch
	RMD320II esi, eax, ebx, ecx, edx, dword ptr [ebp+10*4], 15, 08f1bbcdch
	RMD320II edx, esi, eax, ebx, ecx, dword ptr [ebp+00*4], 14, 08f1bbcdch
	RMD320II ecx, edx, esi, eax, ebx, dword ptr [ebp+08*4], 15, 08f1bbcdch
	RMD320II ebx, ecx, edx, esi, eax, dword ptr [ebp+12*4], 09, 08f1bbcdch
	RMD320II eax, ebx, ecx, edx, esi, dword ptr [ebp+04*4], 08, 08f1bbcdch
	RMD320II esi, eax, ebx, ecx, edx, dword ptr [ebp+13*4], 09, 08f1bbcdch
	RMD320II edx, esi, eax, ebx, ecx, dword ptr [ebp+03*4], 14, 08f1bbcdch
	RMD320II ecx, edx, esi, eax, ebx, dword ptr [ebp+07*4], 05, 08f1bbcdch
	RMD320II ebx, ecx, edx, esi, eax, dword ptr [ebp+15*4], 06, 08f1bbcdch
	RMD320II eax, ebx, ecx, edx, esi, dword ptr [ebp+14*4], 08, 08f1bbcdch
	RMD320II esi, eax, ebx, ecx, edx, dword ptr [ebp+05*4], 06, 08f1bbcdch
	RMD320II edx, esi, eax, ebx, ecx, dword ptr [ebp+06*4], 05, 08f1bbcdch
	RMD320II ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 12, 08f1bbcdch
	;======================================================================
	mov [esp+pushad_size+pushad_eax],eax;a1
	mov [esp+pushad_size+pushad_ebx],ebx;b1
	mov [esp+pushad_size+pushad_ecx],ecx;c1
	mov [esp+pushad_size+pushad_edx],edx;d1
	mov [esp+pushad_size+pushad_esi],esi;d1
	mov eax,[esp+pushad_eax];a2
	mov ebx,[esp+pushad_ebx];b2
	mov ecx,[esp+pushad_ecx];c2
	mov edx,[esp+pushad_edx];d2
	mov esi,[esp+pushad_esi];d2
	;======================================================================
	RMD320GG ecx, edx, esi, eax, ebx, dword ptr [ebp+08*4], 15, 07a6d76e9h
	RMD320GG ebx, ecx, edx, esi, eax, dword ptr [ebp+06*4], 05, 07a6d76e9h
	RMD320GG eax, ebx, ecx, edx, esi, dword ptr [ebp+04*4], 08, 07a6d76e9h
	RMD320GG esi, eax, ebx, ecx, edx, dword ptr [ebp+01*4], 11, 07a6d76e9h
	RMD320GG edx, esi, eax, ebx, ecx, dword ptr [ebp+03*4], 14, 07a6d76e9h
	RMD320GG ecx, edx, esi, eax, ebx, dword ptr [ebp+11*4], 14, 07a6d76e9h
	RMD320GG ebx, ecx, edx, esi, eax, dword ptr [ebp+15*4], 06, 07a6d76e9h
	RMD320GG eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 14, 07a6d76e9h
	RMD320GG esi, eax, ebx, ecx, edx, dword ptr [ebp+05*4], 06, 07a6d76e9h
	RMD320GG edx, esi, eax, ebx, ecx, dword ptr [ebp+12*4], 09, 07a6d76e9h
	RMD320GG ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 12, 07a6d76e9h
	RMD320GG ebx, ecx, edx, esi, eax, dword ptr [ebp+13*4], 09, 07a6d76e9h
	RMD320GG eax, ebx, ecx, edx, esi, dword ptr [ebp+09*4], 12, 07a6d76e9h
	RMD320GG esi, eax, ebx, ecx, edx, dword ptr [ebp+07*4], 05, 07a6d76e9h
	RMD320GG edx, esi, eax, ebx, ecx, dword ptr [ebp+10*4], 15, 07a6d76e9h
	RMD320GG ecx, edx, esi, eax, ebx, dword ptr [ebp+14*4], 08, 07a6d76e9h
	;======================================================================
	mov edi,[esp+pushad_size+pushad_edx]
	mov [esp+pushad_size+pushad_edx],edx
	mov edx,edi
;	xchg edx,[esp+pushad_size+pushad_edx]
	mov [esp+pushad_eax],eax;a2
	mov [esp+pushad_ebx],ebx;b2
	mov [esp+pushad_ecx],ecx;c2
	mov [esp+pushad_edx],edx;d2
	mov [esp+pushad_esi],esi;d2
	mov eax,[esp+pushad_size+pushad_eax];a1
	mov ebx,[esp+pushad_size+pushad_ebx];b1
	mov ecx,[esp+pushad_size+pushad_ecx];c1
	mov edx,[esp+pushad_size+pushad_edx];d1
	mov esi,[esp+pushad_size+pushad_esi];d1
	;======================================================================
	RMD320JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+04*4], 09, 0a953fd4eh
	RMD320JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 15, 0a953fd4eh
	RMD320JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+05*4], 05, 0a953fd4eh
	RMD320JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+09*4], 11, 0a953fd4eh
	RMD320JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+07*4], 06, 0a953fd4eh
	RMD320JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+12*4], 08, 0a953fd4eh
	RMD320JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+02*4], 13, 0a953fd4eh
	RMD320JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+10*4], 12, 0a953fd4eh
	RMD320JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+14*4], 05, 0a953fd4eh
	RMD320JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+01*4], 12, 0a953fd4eh
	RMD320JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+03*4], 13, 0a953fd4eh
	RMD320JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+08*4], 14, 0a953fd4eh
	RMD320JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+11*4], 11, 0a953fd4eh
	RMD320JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+06*4], 08, 0a953fd4eh
	RMD320JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+15*4], 05, 0a953fd4eh
	RMD320JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+13*4], 06, 0a953fd4eh
	;======================================================================
	mov [esp+pushad_size+pushad_eax],eax;a1
	mov [esp+pushad_size+pushad_ebx],ebx;b1
	mov [esp+pushad_size+pushad_ecx],ecx;c1
	mov [esp+pushad_size+pushad_edx],edx;d1
	mov [esp+pushad_size+pushad_esi],esi;d1
	mov eax,[esp+pushad_eax];a2
	mov ebx,[esp+pushad_ebx];b2
	mov ecx,[esp+pushad_ecx];c2
	mov edx,[esp+pushad_edx];d2
	mov esi,[esp+pushad_esi];d2
	;==========================================================
	RMD320FF ebx, ecx, edx, esi, eax, dword ptr [ebp+12*4], 08
	RMD320FF eax, ebx, ecx, edx, esi, dword ptr [ebp+15*4], 05
	RMD320FF esi, eax, ebx, ecx, edx, dword ptr [ebp+10*4], 12
	RMD320FF edx, esi, eax, ebx, ecx, dword ptr [ebp+04*4], 09
	RMD320FF ecx, edx, esi, eax, ebx, dword ptr [ebp+01*4], 12
	RMD320FF ebx, ecx, edx, esi, eax, dword ptr [ebp+05*4], 05
	RMD320FF eax, ebx, ecx, edx, esi, dword ptr [ebp+08*4], 14
	RMD320FF esi, eax, ebx, ecx, edx, dword ptr [ebp+07*4], 06
	RMD320FF edx, esi, eax, ebx, ecx, dword ptr [ebp+06*4], 08
	RMD320FF ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 13
	RMD320FF ebx, ecx, edx, esi, eax, dword ptr [ebp+13*4], 06
	RMD320FF eax, ebx, ecx, edx, esi, dword ptr [ebp+14*4], 05
	RMD320FF esi, eax, ebx, ecx, edx, dword ptr [ebp+00*4], 15
	RMD320FF edx, esi, eax, ebx, ecx, dword ptr [ebp+03*4], 13
	RMD320FF ecx, edx, esi, eax, ebx, dword ptr [ebp+09*4], 11
	RMD320FF ebx, ecx, edx, esi, eax, dword ptr [ebp+11*4], 11
	;==========================================================
	mov edi,[esp+pushad_size+pushad_esi]
	mov [esp+pushad_size+pushad_esi],esi
	mov esi,edi
;	xchg esi,[esp+pushad_size+pushad_esi];b1<-->b2
	mov ebp,offset RMD320Digest
	add [ebp+5*4],eax
	add [ebp+6*4],ebx
	add [ebp+7*4],ecx
	add [ebp+8*4],edx
	add [ebp+9*4],esi
	popad
	popad
	mov ebp,offset RMD320Digest
	add [ebp+0*4],eax
	add [ebp+1*4],ebx
	add [ebp+2*4],ecx
	add [ebp+3*4],edx
	add [ebp+4*4],esi
	popad
	ret
RMD320Transform endp

RMD320BURN macro
	xor eax,eax
	mov RMD320Index,eax
	mov edi,Offset RMD320HashBuf
	mov ecx,(sizeof RMD320HashBuf)/4
	rep stosd
endm

align dword
RMD320Init proc uses edi
	xor eax, eax
	mov RMD320Len,eax
	RMD320BURN
	mov eax,offset RMD320Digest
	mov dword ptr [eax+0*4],067452301h
	mov dword ptr [eax+1*4],0EFCDAB89h
	mov dword ptr [eax+2*4],098BADCFEh
	mov dword ptr [eax+3*4],010325476h
	mov	dword ptr [eax+4*4],0C3D2E1F0h
	mov dword ptr [eax+5*4],076543210h
	mov dword ptr [eax+6*4],0FEDCBA98h
	mov dword ptr [eax+7*4],089ABCDEFh
	mov dword ptr [eax+8*4],001234567h
	mov	dword ptr [eax+9*4],03C2D1E0Fh
	ret
RMD320Init endp

align dword
RMD320Update proc uses esi edi ebx lpBuffer:dword, dwBufLen:dword
	mov ebx,dwBufLen
	add RMD320Len,ebx
	.while ebx
		mov eax,RMD320Index
		mov edx,64
		sub edx,eax
		.if edx <= ebx
			lea edi, [RMD320HashBuf+eax]	
			mov esi, lpBuffer
			mov ecx, edx
			rep movsb
			sub ebx, edx
			add lpBuffer, edx
			call RMD320Transform
			RMD320BURN
		.else
			lea edi, [RMD320HashBuf+eax]	
			mov esi, lpBuffer
			mov ecx, ebx
			rep movsb
			mov eax, RMD320Index
			add eax, ebx
			mov RMD320Index,eax
			.break
		.endif
	.endw
	ret
RMD320Update endp

align dword
RMD320Final proc uses esi edi
	mov ecx, RMD320Index
	mov byte ptr [RMD320HashBuf+ecx],80h
	.if ecx >= 56
		call RMD320Transform
		RMD320BURN
	.endif
	mov eax,RMD320Len
	xor edx,edx
	shld edx,eax,3
	shl eax,3
	mov dword ptr [RMD320HashBuf+56],eax
	mov dword ptr [RMD320HashBuf+60],edx
	call RMD320Transform
	mov eax,offset RMD320Digest
	ret
RMD320Final endp

end

⌨️ 快捷键说明

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