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

📄 r5-win32.asm

📁 安全套接字层
💻 ASM
字号:
	; Don't even think of reading this code	; It was automatically generated by rc5-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	rc5-586.asm        .386.model FLAT_TEXT	SEGMENTPUBLIC	_RC5_32_encrypt_RC5_32_encrypt PROC NEAR	; 	push	ebp	push	esi	push	edi	mov	edx,		DWORD PTR 16[esp]	mov	ebp,		DWORD PTR 20[esp]	; Load the 2 words	mov	edi,		DWORD PTR [edx]	mov	esi,		DWORD PTR 4[edx]	push	ebx	mov	ebx,		DWORD PTR [ebp]	add	edi,		DWORD PTR 4[ebp]	add	esi,		DWORD PTR 8[ebp]	xor	edi,		esi	mov	eax,		DWORD PTR 12[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 16[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 20[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 24[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 28[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 32[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 36[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 40[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 44[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 48[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 52[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 56[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 60[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 64[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 68[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 72[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	cmp	ebx,		8	je	$L000rc5_exit	xor	edi,		esi	mov	eax,		DWORD PTR 76[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 80[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 84[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 88[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 92[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 96[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 100[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 104[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	cmp	ebx,		12	je	$L000rc5_exit	xor	edi,		esi	mov	eax,		DWORD PTR 108[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 112[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 116[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 120[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 124[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 128[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax	xor	edi,		esi	mov	eax,		DWORD PTR 132[ebp]	mov	ecx,		esi	rol	edi,		cl	add	edi,		eax	xor	esi,		edi	mov	eax,		DWORD PTR 136[ebp]	mov	ecx,		edi	rol	esi,		cl	add	esi,		eax$L000rc5_exit:	mov	DWORD PTR [edx],edi	mov	DWORD PTR 4[edx],esi	pop	ebx	pop	edi	pop	esi	pop	ebp	ret_RC5_32_encrypt ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_RC5_32_decrypt_RC5_32_decrypt PROC NEAR	; 	push	ebp	push	esi	push	edi	mov	edx,		DWORD PTR 16[esp]	mov	ebp,		DWORD PTR 20[esp]	; Load the 2 words	mov	edi,		DWORD PTR [edx]	mov	esi,		DWORD PTR 4[edx]	push	ebx	mov	ebx,		DWORD PTR [ebp]	cmp	ebx,		12	je	$L001rc5_dec_12	cmp	ebx,		8	je	$L002rc5_dec_8	mov	eax,		DWORD PTR 136[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 132[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 128[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 124[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 120[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 116[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 112[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 108[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi$L001rc5_dec_12:	mov	eax,		DWORD PTR 104[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 100[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 96[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 92[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 88[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 84[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 80[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 76[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi$L002rc5_dec_8:	mov	eax,		DWORD PTR 72[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 68[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 64[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 60[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 56[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 52[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 48[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 44[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 40[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 36[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 32[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 28[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 24[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 20[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	mov	eax,		DWORD PTR 16[ebp]	sub	esi,		eax	mov	ecx,		edi	ror	esi,		cl	xor	esi,		edi	mov	eax,		DWORD PTR 12[ebp]	sub	edi,		eax	mov	ecx,		esi	ror	edi,		cl	xor	edi,		esi	sub	esi,		DWORD PTR 8[ebp]	sub	edi,		DWORD PTR 4[ebp]L003rc5_exit:	mov	DWORD PTR [edx],edi	mov	DWORD PTR 4[edx],esi	pop	ebx	pop	edi	pop	esi	pop	ebp	ret_RC5_32_decrypt ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_RC5_32_cbc_encrypt_RC5_32_cbc_encrypt PROC NEAR	; 	push	ebp	push	ebx	push	esi	push	edi	mov	ebp,		DWORD PTR 28[esp]	; getting iv ptr from parameter 4	mov	ebx,		DWORD PTR 36[esp]	mov	esi,		DWORD PTR [ebx]	mov	edi,		DWORD PTR 4[ebx]	push	edi	push	esi	push	edi	push	esi	mov	ebx,		esp	mov	esi,		DWORD PTR 36[esp]	mov	edi,		DWORD PTR 40[esp]	; getting encrypt flag from parameter 5	mov	ecx,		DWORD PTR 56[esp]	; get and push parameter 3	mov	eax,		DWORD PTR 48[esp]	push	eax	push	ebx	cmp	ecx,		0	jz	$L004decrypt	and	ebp,		4294967288	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	jz	$L005encrypt_finishL006encrypt_loop:	mov	ecx,		DWORD PTR [esi]	mov	edx,		DWORD PTR 4[esi]	xor	eax,		ecx	xor	ebx,		edx	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_RC5_32_encrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L006encrypt_loop$L005encrypt_finish:	mov	ebp,		DWORD PTR 52[esp]	and	ebp,		7	jz	$L007finish	xor	ecx,		ecx	xor	edx,		edx	mov	ebp,		DWORD PTR $L008cbc_enc_jmp_table[ebp*4]	jmp	 ebpL009ej7:	mov	dh,		BYTE PTR 6[esi]	shl	edx,		8L010ej6:	mov	dh,		BYTE PTR 5[esi]L011ej5:	mov	dl,		BYTE PTR 4[esi]L012ej4:	mov	ecx,		DWORD PTR [esi]	jmp	$L013ejendL014ej3:	mov	ch,		BYTE PTR 2[esi]	shl	ecx,		8L015ej2:	mov	ch,		BYTE PTR 1[esi]L016ej1:	mov	cl,		BYTE PTR [esi]$L013ejend:	xor	eax,		ecx	xor	ebx,		edx	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_RC5_32_encrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	jmp	$L007finish$L004decrypt:	and	ebp,		4294967288	mov	eax,		DWORD PTR 16[esp]	mov	ebx,		DWORD PTR 20[esp]	jz	$L017decrypt_finishL018decrypt_loop:	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_RC5_32_decrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	mov	ecx,		DWORD PTR 16[esp]	mov	edx,		DWORD PTR 20[esp]	xor	ecx,		eax	xor	edx,		ebx	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR [edi],ecx	mov	DWORD PTR 4[edi],edx	mov	DWORD PTR 16[esp],eax	mov	DWORD PTR 20[esp],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L018decrypt_loop$L017decrypt_finish:	mov	ebp,		DWORD PTR 52[esp]	and	ebp,		7	jz	$L007finish	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_RC5_32_decrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	mov	ecx,		DWORD PTR 16[esp]	mov	edx,		DWORD PTR 20[esp]	xor	ecx,		eax	xor	edx,		ebx	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]L019dj7:	ror	edx,		16	mov	BYTE PTR 6[edi],dl	shr	edx,		16L020dj6:	mov	BYTE PTR 5[edi],dhL021dj5:	mov	BYTE PTR 4[edi],dlL022dj4:	mov	DWORD PTR [edi],ecx	jmp	$L023djendL024dj3:	ror	ecx,		16	mov	BYTE PTR 2[edi],cl	shl	ecx,		16L025dj2:	mov	BYTE PTR 1[esi],chL026dj1:	mov	BYTE PTR [esi],	cl$L023djend:	jmp	$L007finish$L007finish:	mov	ecx,		DWORD PTR 60[esp]	add	esp,		24	mov	DWORD PTR [ecx],eax	mov	DWORD PTR 4[ecx],ebx	pop	edi	pop	esi	pop	ebx	pop	ebp	ret$L008cbc_enc_jmp_table:	DD	0	DD	L016ej1	DD	L015ej2	DD	L014ej3	DD	L012ej4	DD	L011ej5	DD	L010ej6	DD	L009ej7L027cbc_dec_jmp_table:	DD	0	DD	L026dj1	DD	L025dj2	DD	L024dj3	DD	L022dj4	DD	L021dj5	DD	L020dj6	DD	L019dj7_RC5_32_cbc_encrypt ENDP_TEXT	ENDSEND

⌨️ 快捷键说明

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