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

📄 rmd160.asm

📁 ASM 多种hash模块,汇编源码 MD2,4,5 SHA 等多种加密算法 还有其他赠送内容
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	RMD160JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+05*4], 08, 050a28be6h
	RMD160JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+14*4], 09, 050a28be6h
	RMD160JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+07*4], 09, 050a28be6h
	RMD160JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+00*4], 11, 050a28be6h
	RMD160JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+09*4], 13, 050a28be6h
	RMD160JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+02*4], 15, 050a28be6h
	RMD160JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+11*4], 15, 050a28be6h
	RMD160JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+04*4], 05, 050a28be6h
	RMD160JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+13*4], 07, 050a28be6h
	RMD160JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+06*4], 07, 050a28be6h
	RMD160JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+15*4], 08, 050a28be6h
	RMD160JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+08*4], 11, 050a28be6h
	RMD160JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+01*4], 14, 050a28be6h
	RMD160JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+10*4], 14, 050a28be6h
	RMD160JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+03*4], 12, 050a28be6h
	RMD160JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+12*4], 06, 050a28be6h
	;======================================================================
	RMD160II esi, eax, ebx, ecx, edx, dword ptr [ebp+06*4], 09, 05c4dd124h
	RMD160II edx, esi, eax, ebx, ecx, dword ptr [ebp+11*4], 13, 05c4dd124h
	RMD160II ecx, edx, esi, eax, ebx, dword ptr [ebp+03*4], 15, 05c4dd124h
	RMD160II ebx, ecx, edx, esi, eax, dword ptr [ebp+07*4], 07, 05c4dd124h
	RMD160II eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 12, 05c4dd124h
	RMD160II esi, eax, ebx, ecx, edx, dword ptr [ebp+13*4], 08, 05c4dd124h
	RMD160II edx, esi, eax, ebx, ecx, dword ptr [ebp+05*4], 09, 05c4dd124h
	RMD160II ecx, edx, esi, eax, ebx, dword ptr [ebp+10*4], 11, 05c4dd124h
	RMD160II ebx, ecx, edx, esi, eax, dword ptr [ebp+14*4], 07, 05c4dd124h
	RMD160II eax, ebx, ecx, edx, esi, dword ptr [ebp+15*4], 07, 05c4dd124h
	RMD160II esi, eax, ebx, ecx, edx, dword ptr [ebp+08*4], 12, 05c4dd124h
	RMD160II edx, esi, eax, ebx, ecx, dword ptr [ebp+12*4], 07, 05c4dd124h
	RMD160II ecx, edx, esi, eax, ebx, dword ptr [ebp+04*4], 06, 05c4dd124h
	RMD160II ebx, ecx, edx, esi, eax, dword ptr [ebp+09*4], 15, 05c4dd124h
	RMD160II eax, ebx, ecx, edx, esi, dword ptr [ebp+01*4], 13, 05c4dd124h
	RMD160II esi, eax, ebx, ecx, edx, dword ptr [ebp+02*4], 11, 05c4dd124h
	;======================================================================
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+15*4], 09, 06d703ef3h
	RMD160HH ecx, edx, esi, eax, ebx, dword ptr [ebp+05*4], 07, 06d703ef3h
	RMD160HH ebx, ecx, edx, esi, eax, dword ptr [ebp+01*4], 15, 06d703ef3h
	RMD160HH eax, ebx, ecx, edx, esi, dword ptr [ebp+03*4], 11, 06d703ef3h
	RMD160HH esi, eax, ebx, ecx, edx, dword ptr [ebp+07*4], 08, 06d703ef3h
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+14*4], 06, 06d703ef3h
	RMD160HH ecx, edx, esi, eax, ebx, dword ptr [ebp+06*4], 06, 06d703ef3h
	RMD160HH ebx, ecx, edx, esi, eax, dword ptr [ebp+09*4], 14, 06d703ef3h
	RMD160HH eax, ebx, ecx, edx, esi, dword ptr [ebp+11*4], 12, 06d703ef3h
	RMD160HH esi, eax, ebx, ecx, edx, dword ptr [ebp+08*4], 13, 06d703ef3h
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+12*4], 05, 06d703ef3h
	RMD160HH ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 14, 06d703ef3h
	RMD160HH ebx, ecx, edx, esi, eax, dword ptr [ebp+10*4], 13, 06d703ef3h
	RMD160HH eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 13, 06d703ef3h
	RMD160HH esi, eax, ebx, ecx, edx, dword ptr [ebp+04*4], 07, 06d703ef3h
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+13*4], 05, 06d703ef3h
	;======================================================================
	RMD160GG ecx, edx, esi, eax, ebx, dword ptr [ebp+08*4], 15, 07a6d76e9h
	RMD160GG ebx, ecx, edx, esi, eax, dword ptr [ebp+06*4], 05, 07a6d76e9h
	RMD160GG eax, ebx, ecx, edx, esi, dword ptr [ebp+04*4], 08, 07a6d76e9h
	RMD160GG esi, eax, ebx, ecx, edx, dword ptr [ebp+01*4], 11, 07a6d76e9h
	RMD160GG edx, esi, eax, ebx, ecx, dword ptr [ebp+03*4], 14, 07a6d76e9h
	RMD160GG ecx, edx, esi, eax, ebx, dword ptr [ebp+11*4], 14, 07a6d76e9h
	RMD160GG ebx, ecx, edx, esi, eax, dword ptr [ebp+15*4], 06, 07a6d76e9h
	RMD160GG eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 14, 07a6d76e9h
	RMD160GG esi, eax, ebx, ecx, edx, dword ptr [ebp+05*4], 06, 07a6d76e9h
	RMD160GG edx, esi, eax, ebx, ecx, dword ptr [ebp+12*4], 09, 07a6d76e9h
	RMD160GG ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 12, 07a6d76e9h
	RMD160GG ebx, ecx, edx, esi, eax, dword ptr [ebp+13*4], 09, 07a6d76e9h
	RMD160GG eax, ebx, ecx, edx, esi, dword ptr [ebp+09*4], 12, 07a6d76e9h
	RMD160GG esi, eax, ebx, ecx, edx, dword ptr [ebp+07*4], 05, 07a6d76e9h
	RMD160GG edx, esi, eax, ebx, ecx, dword ptr [ebp+10*4], 15, 07a6d76e9h
	RMD160GG ecx, edx, esi, eax, ebx, dword ptr [ebp+14*4], 08, 07a6d76e9h
	;======================================================================
	RMD160FF ebx, ecx, edx, esi, eax, dword ptr [ebp+12*4], 08
	RMD160FF eax, ebx, ecx, edx, esi, dword ptr [ebp+15*4], 05
	RMD160FF esi, eax, ebx, ecx, edx, dword ptr [ebp+10*4], 12
	RMD160FF edx, esi, eax, ebx, ecx, dword ptr [ebp+04*4], 09
	RMD160FF ecx, edx, esi, eax, ebx, dword ptr [ebp+01*4], 12
	RMD160FF ebx, ecx, edx, esi, eax, dword ptr [ebp+05*4], 05
	RMD160FF eax, ebx, ecx, edx, esi, dword ptr [ebp+08*4], 14
	RMD160FF esi, eax, ebx, ecx, edx, dword ptr [ebp+07*4], 06
	RMD160FF edx, esi, eax, ebx, ecx, dword ptr [ebp+06*4], 08
	RMD160FF ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 13
	RMD160FF ebx, ecx, edx, esi, eax, dword ptr [ebp+13*4], 06
	RMD160FF eax, ebx, ecx, edx, esi, dword ptr [ebp+14*4], 05
	RMD160FF esi, eax, ebx, ecx, edx, dword ptr [ebp+00*4], 15
	RMD160FF edx, esi, eax, ebx, ecx, dword ptr [ebp+03*4], 13
	RMD160FF ecx, edx, esi, eax, ebx, dword ptr [ebp+09*4], 11
	RMD160FF ebx, ecx, edx, esi, eax, dword ptr [ebp+11*4], 11
	;==========================================================
	mov ebp,offset RMD160Digest; update digest
	mov edi,[ebp+1*4]
    add esi,[esp+pushad_edx]
    add esi,[ebp+2*4]
    add eax,[esp+pushad_esi]
    add eax,[ebp+3*4]
    add ebx,[esp+pushad_eax]
    add ebx,[ebp+4*4]
	add	ecx,[esp+pushad_ebx]
	add ecx,[ebp+0*4]
    add edx,[esp+pushad_ecx]    
    add edx,edi
	mov [ebp+1*4],esi
	mov [ebp+2*4],eax
	mov [ebp+3*4],ebx
	mov [ebp+4*4],ecx
	mov [ebp+0*4],edx
	popad
	popad
	ret
RMD160Transform endp

RMD160BURN macro
	xor eax,eax
	mov RMD160Index,eax
	mov edi,Offset RMD160HashBuf
	mov ecx,(sizeof RMD160HashBuf)/4
	rep stosd
endm

align dword
RMD160Init proc uses edi
	xor eax, eax
	mov RMD160Len,eax
	RMD160BURN
	mov eax,offset RMD160Digest
	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
	ret
RMD160Init endp

align dword
RMD160Update proc uses esi edi ebx lpBuffer:dword, dwBufLen:dword
	mov ebx,dwBufLen
	add RMD160Len,ebx
	.while ebx
		mov eax,RMD160Index
		mov edx,64
		sub edx,eax
		.if edx <= ebx
			lea edi, [RMD160HashBuf+eax]	
			mov esi, lpBuffer
			mov ecx, edx
			rep movsb
			sub ebx, edx
			add lpBuffer, edx
			call RMD160Transform
			RMD160BURN
		.else
			lea edi, [RMD160HashBuf+eax]	
			mov esi, lpBuffer
			mov ecx, ebx
			rep movsb
			mov eax, RMD160Index
			add eax, ebx
			mov RMD160Index,eax
			.break
		.endif
	.endw
	ret
RMD160Update endp

align dword
RMD160Final proc uses esi edi
	mov ecx, RMD160Index
	mov byte ptr [RMD160HashBuf+ecx],80h
	.if ecx >= 56
		call RMD160Transform
		RMD160BURN
	.endif
	mov eax,RMD160Len
	xor edx,edx
	shld edx,eax,3
	shl eax,3
	mov dword ptr [RMD160HashBuf+56],eax
	mov dword ptr [RMD160HashBuf+60],edx
	call RMD160Transform
	mov eax,offset RMD160Digest	
	ret
RMD160Final endp

end

⌨️ 快捷键说明

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