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

📄 y-win32.asm

📁 本软件是根据DES加密算法
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	; Don't even think of reading this code
	; It was automatically generated by crypt586.pl
	; Which is a perl program used to generate the x86 assember for
	; any of elf, a.out, BSDI,Win32, or Solaris
	; eric <eay@cryptsoft.com>
	; 
	TITLE	crypt586.asm
        .386
.model FLAT
_TEXT	SEGMENT
PUBLIC	_fcrypt_body
EXTRN   _des_SPtrans:DWORD
_fcrypt_body PROC NEAR
	push	ebp
	push	ebx
	push	esi
	push	edi
	; 
	; Load the 2 words
	xor	edi,		edi
	xor	esi,		esi
	mov	ebp,		DWORD PTR 24[esp]
	push	25
L000start:
	; 
	; Round 0
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		esi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		esi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR [ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 4[ebp]
	xor	eax,		esi
	xor	edx,		esi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 1
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		edi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		edi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 8[ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 12[ebp]
	xor	eax,		edi
	xor	edx,		edi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 2
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		esi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		esi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 16[ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 20[ebp]
	xor	eax,		esi
	xor	edx,		esi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 3
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		edi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		edi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 24[ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 28[ebp]
	xor	eax,		edi
	xor	edx,		edi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 4
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		esi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		esi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 32[ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 36[ebp]
	xor	eax,		esi
	xor	edx,		esi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 5
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		edi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		edi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 40[ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 44[ebp]
	xor	eax,		edi
	xor	edx,		edi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 6
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		esi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		esi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 48[ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 52[ebp]
	xor	eax,		esi
	xor	edx,		esi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 7
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		edi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		edi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 56[ebp]
	xor	eax,		ebx
	mov	ecx,		DWORD PTR 60[ebp]
	xor	eax,		edi
	xor	edx,		edi
	xor	edx,		ecx
	and	eax,		0fcfcfcfch
	xor	ebx,		ebx
	and	edx,		0cfcfcfcfh
	xor	ecx,		ecx
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 28[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 8
	mov	eax,		DWORD PTR 32[esp]
	mov	edx,		esi
	shr	edx,		16
	mov	ecx,		DWORD PTR 36[esp]
	xor	edx,		esi
	and	eax,		edx
	and	edx,		ecx
	mov	ebx,		eax
	shl	ebx,		16
	mov	ecx,		edx
	shl	ecx,		16
	xor	eax,		ebx
	xor	edx,		ecx
	mov	ebx,		DWORD PTR 64[ebp]
	xor	eax,		ebx

⌨️ 快捷键说明

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