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

📄 c-win32.asm

📁 安全套接字层
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	; Don't even think of reading this code	; It was automatically generated by cast-586.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	cast-586.asm        .486.model FLAT_TEXT	SEGMENTPUBLIC	_CAST_encryptEXTERN	_CAST_S_table0:DWORDEXTERN	_CAST_S_table1:DWORDEXTERN	_CAST_S_table2:DWORDEXTERN	_CAST_S_table3:DWORD_CAST_encrypt PROC NEAR	; 	push	ebp	push	ebx	mov	ebx,		DWORD PTR 12[esp]	mov	ebp,		DWORD PTR 16[esp]	push	esi	push	edi	; Load the 2 words	mov	edi,		DWORD PTR [ebx]	mov	esi,		DWORD PTR 4[ebx]	; Get short key flag	mov	eax,		DWORD PTR 128[ebp]	push	eax	xor	eax,		eax	; round 0	mov	edx,		DWORD PTR [ebp]	mov	ecx,		DWORD PTR 4[ebp]	add	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	edi,		ecx	; round 1	mov	edx,		DWORD PTR 8[ebp]	mov	ecx,		DWORD PTR 12[ebp]	xor	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	esi,		ecx	; round 2	mov	edx,		DWORD PTR 16[ebp]	mov	ecx,		DWORD PTR 20[ebp]	sub	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	edi,		ecx	; round 3	mov	edx,		DWORD PTR 24[ebp]	mov	ecx,		DWORD PTR 28[ebp]	add	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	esi,		ecx	; round 4	mov	edx,		DWORD PTR 32[ebp]	mov	ecx,		DWORD PTR 36[ebp]	xor	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	edi,		ecx	; round 5	mov	edx,		DWORD PTR 40[ebp]	mov	ecx,		DWORD PTR 44[ebp]	sub	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	esi,		ecx	; round 6	mov	edx,		DWORD PTR 48[ebp]	mov	ecx,		DWORD PTR 52[ebp]	add	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	edi,		ecx	; round 7	mov	edx,		DWORD PTR 56[ebp]	mov	ecx,		DWORD PTR 60[ebp]	xor	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	esi,		ecx	; round 8	mov	edx,		DWORD PTR 64[ebp]	mov	ecx,		DWORD PTR 68[ebp]	sub	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	edi,		ecx	; round 9	mov	edx,		DWORD PTR 72[ebp]	mov	ecx,		DWORD PTR 76[ebp]	add	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	esi,		ecx	; round 10	mov	edx,		DWORD PTR 80[ebp]	mov	ecx,		DWORD PTR 84[ebp]	xor	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	edi,		ecx	; round 11	mov	edx,		DWORD PTR 88[ebp]	mov	ecx,		DWORD PTR 92[ebp]	sub	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	esi,		ecx	; test short key flag	pop	edx	or	edx,		edx	jnz	$L000cast_enc_done	; round 12	mov	edx,		DWORD PTR 96[ebp]	mov	ecx,		DWORD PTR 100[ebp]	add	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	edi,		ecx	; round 13	mov	edx,		DWORD PTR 104[ebp]	mov	ecx,		DWORD PTR 108[ebp]	xor	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	esi,		ecx	; round 14	mov	edx,		DWORD PTR 112[ebp]	mov	ecx,		DWORD PTR 116[ebp]	sub	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	edi,		ecx	; round 15	mov	edx,		DWORD PTR 120[ebp]	mov	ecx,		DWORD PTR 124[ebp]	add	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	esi,		ecx$L000cast_enc_done:	nop	mov	eax,		DWORD PTR 20[esp]	mov	DWORD PTR 4[eax],edi	mov	DWORD PTR [eax],esi	pop	edi	pop	esi	pop	ebx	pop	ebp	ret_CAST_encrypt ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_CAST_decryptEXTERN	_CAST_S_table0:DWORDEXTERN	_CAST_S_table1:DWORDEXTERN	_CAST_S_table2:DWORDEXTERN	_CAST_S_table3:DWORD_CAST_decrypt PROC NEAR	; 	push	ebp	push	ebx	mov	ebx,		DWORD PTR 12[esp]	mov	ebp,		DWORD PTR 16[esp]	push	esi	push	edi	; Load the 2 words	mov	edi,		DWORD PTR [ebx]	mov	esi,		DWORD PTR 4[ebx]	; Get short key flag	mov	eax,		DWORD PTR 128[ebp]	or	eax,		eax	jnz	$L001cast_dec_skip	xor	eax,		eax	; round 15	mov	edx,		DWORD PTR 120[ebp]	mov	ecx,		DWORD PTR 124[ebp]	add	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	edi,		ecx	; round 14	mov	edx,		DWORD PTR 112[ebp]	mov	ecx,		DWORD PTR 116[ebp]	sub	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	esi,		ecx	; round 13	mov	edx,		DWORD PTR 104[ebp]	mov	ecx,		DWORD PTR 108[ebp]	xor	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	edi,		ecx	; round 12	mov	edx,		DWORD PTR 96[ebp]	mov	ecx,		DWORD PTR 100[ebp]	add	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh

⌨️ 快捷键说明

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