OpenCores
URL https://opencores.org/ocsvn/bluespec_md6/bluespec_md6/trunk

Subversion Repositories bluespec_md6

[/] [bluespec_md6/] [trunk/] [C_implementation/] [md6_compress.s] - Rev 7

Compare with Previous | Blame | View Log

; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727.42 
 
	TITLE	C:\ron\proj\2007E_md6\rivest\C implementation\md6_compress.c
	.686P
	.XMM
	include listing.inc
	.model	flat
 
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
 
PUBLIC	_S0
PUBLIC	_Smask
_DATA	SEGMENT
COMM	_compression_hook:DWORD
_DATA	ENDS
CONST	SEGMENT
_S0	DQ	0123456789abcdefH
_Smask	DQ	7311c2812425cfa0H
CONST	ENDS
PUBLIC	_md6_main_compression_loop
; Function compile flags: /Ogtpy
;	COMDAT _md6_main_compression_loop
_TEXT	SEGMENT
tv2623 = -164						; size = 4
tv2611 = -164						; size = 4
tv2609 = -164						; size = 4
tv2607 = -164						; size = 4
tv2605 = -164						; size = 4
tv2603 = -164						; size = 4
tv2601 = -164						; size = 4
tv2599 = -164						; size = 4
tv2597 = -164						; size = 4
tv2595 = -164						; size = 4
tv2593 = -164						; size = 4
tv2591 = -164						; size = 4
tv2589 = -164						; size = 4
tv2587 = -164						; size = 4
tv2585 = -164						; size = 4
tv2583 = -164						; size = 4
tv2581 = -164						; size = 4
tv2579 = -164						; size = 4
tv2577 = -164						; size = 4
tv2575 = -164						; size = 4
tv2573 = -164						; size = 4
tv2571 = -164						; size = 4
tv2569 = -164						; size = 4
tv2567 = -164						; size = 4
tv2565 = -164						; size = 4
tv2563 = -164						; size = 4
tv2561 = -164						; size = 4
tv2559 = -164						; size = 4
tv2557 = -164						; size = 4
tv2555 = -164						; size = 4
tv2553 = -164						; size = 4
tv2551 = -164						; size = 4
tv2549 = -164						; size = 4
tv2619 = -160						; size = 4
tv2621 = -156						; size = 4
tv1969 = -152						; size = 4
_x$ = -148						; size = 8
_S$ = -140						; size = 8
tv769 = -132						; size = 4
tv87 = -128						; size = 8
tv905 = -120						; size = 8
tv3245 = -112						; size = 8
tv380 = -104						; size = 8
tv959 = -96						; size = 8
tv717 = -88						; size = 8
tv933 = -80						; size = 8
tv869 = -72						; size = 8
tv160 = -64						; size = 8
tv264 = -56						; size = 8
tv3268 = -48						; size = 8
tv185 = -40						; size = 8
tv3222 = -32						; size = 8
tv218 = -24						; size = 8
tv142 = -16						; size = 8
tv271 = -8						; size = 8
_A$ = 8							; size = 4
_r$ = 12						; size = 4
_md6_main_compression_loop PROC				; COMDAT
; File c:\ron\proj\2007e_md6\rivest\c implementation\md6_compress.c
; Line 197
	sub	esp, 164				; 000000a4H
	push	edi
; Line 204
	mov	edi, DWORD PTR _r$[esp+164]
	shl	edi, 4
	test	edi, edi
	mov	DWORD PTR _S$[esp+168], -1985229329	; 89abcdefH
	mov	DWORD PTR _S$[esp+172], 19088743	; 01234567H
	jle	$LN1@md6_main_c
	mov	eax, DWORD PTR _A$[esp+164]
	push	ebx
	lea	ecx, DWORD PTR [eax+712]
	lea	edx, DWORD PTR [eax+576]
	push	ebp
	add	edi, -1
	push	esi
	mov	DWORD PTR tv1969[esp+180], ecx
	mov	DWORD PTR tv2619[esp+180], edx
	mov	DWORD PTR tv2621[esp+180], eax
	lea	esi, DWORD PTR [eax+568]
	lea	edx, DWORD PTR [eax+544]
	lea	ecx, DWORD PTR [eax+464]
	shr	edi, 4
	add	eax, 176				; 000000b0H
	add	edi, 1
	mov	DWORD PTR tv769[esp+180], edi
	jmp	SHORT $LN3@md6_main_c
$LL8@md6_main_c:
; Line 203
	mov	esi, DWORD PTR tv2623[esp+180]
$LN3@md6_main_c:
; Line 222
	mov	edi, DWORD PTR [ecx+4]
	and	edi, DWORD PTR [eax+4]
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	mov	ebp, DWORD PTR [esi+4]
	and	ebp, DWORD PTR [edx+4]
	mov	DWORD PTR tv3268[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx]
	xor	ebx, edi
	mov	edi, DWORD PTR tv3268[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 10
	shr	edi, 10					; 0000000aH
	xor	ebx, ebp
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 11
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 11					; 0000000bH
	xor	ebp, ebx
	mov	DWORD PTR tv2609[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2609[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	ecx, ebx
	add	eax, ebx
	mov	DWORD PTR tv3245[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx+ebx]
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv3245[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 5
	shr	edi, 5
	mov	DWORD PTR tv2607[esp+180], edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	ebx, ebp
	mov	ebp, DWORD PTR tv2607[esp+180]
	xor	edi, ebp
	mov	ebp, ebx
	mov	DWORD PTR _x$[esp+184], edi
	shld	edi, ebp, 24
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 24					; 00000018H
	xor	ebp, ebx
	mov	DWORD PTR tv2605[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2605[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	add	ecx, ebx
	mov	DWORD PTR tv3222[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx+ebx]
	add	eax, ebx
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv3222[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 13
	shr	edi, 13					; 0000000dH
	mov	DWORD PTR tv2603[esp+180], edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	ebx, ebp
	mov	ebp, DWORD PTR tv2603[esp+180]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 9
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 9
	xor	ebp, ebx
	mov	DWORD PTR tv2601[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2601[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2619[esp+180], ebx
	add	DWORD PTR tv2621[esp+180], ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	add	edi, ebx
	add	ecx, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	eax, ebx
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	mov	DWORD PTR tv959[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx]
	xor	ebx, edi
	mov	edi, DWORD PTR tv959[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR [ebp+4]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 10
	xor	ebx, ebp
	shr	edi, 10					; 0000000aH
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 16
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 16					; 00000010H
	xor	ebp, ebx
	mov	DWORD PTR tv2597[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2597[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	ecx, ebx
	add	eax, ebx
	mov	DWORD PTR tv87[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx+ebx]
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv87[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 11
	shr	edi, 11					; 0000000bH
	xor	ebx, ebp
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 15
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 15					; 0000000fH
	xor	ebp, ebx
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	mov	DWORD PTR tv2593[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2593[esp+180]
	add	eax, ebx
	add	ecx, ebx
	add	edx, ebx
	add	esi, ebx
	add	DWORD PTR tv2619[esp+180], ebx
	mov	DWORD PTR [edi+4], ebp
	add	edi, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+4]
	and	edi, DWORD PTR [eax+4]
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	mov	ebp, DWORD PTR [esi+4]
	and	ebp, DWORD PTR [edx+4]
	mov	DWORD PTR tv933[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx]
	xor	ebx, edi
	mov	edi, DWORD PTR tv933[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 12
	shr	edi, 12					; 0000000cH
	xor	ebx, ebp
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 9
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 9
	xor	ebp, ebx
	mov	DWORD PTR tv2589[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2589[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	ecx, ebx
	add	eax, ebx
	add	esi, ebx
	mov	DWORD PTR tv142[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx+ebx]
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv142[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR _S$[esp+180]
	xor	edi, DWORD PTR _S$[esp+184]
	mov	ebp, ebx
	mov	DWORD PTR _x$[esp+184], edi
	shrd	ebp, edi, 2
	shr	edi, 2
	mov	DWORD PTR tv2587[esp+180], edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	ebx, ebp
	mov	ebp, DWORD PTR tv2587[esp+180]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 27
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 27					; 0000001bH
	xor	ebp, ebx
	mov	DWORD PTR tv2585[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2585[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	add	ecx, ebx
	mov	DWORD PTR tv160[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx+ebx]
	add	eax, ebx
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv160[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 7
	shr	edi, 7
	mov	DWORD PTR tv2583[esp+180], edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	ebx, ebp
	mov	ebp, DWORD PTR tv2583[esp+180]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 15
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 15					; 0000000fH
	xor	ebp, ebx
	mov	DWORD PTR tv2581[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2581[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2619[esp+180], ebx
	add	DWORD PTR tv2621[esp+180], ebx
; Line 223
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	add	edi, ebx
	add	ecx, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	eax, ebx
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	mov	DWORD PTR tv905[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx]
	xor	ebx, edi
	mov	edi, DWORD PTR tv905[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 14
	xor	ebx, ebp
	shr	edi, 14					; 0000000eH
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 6
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 6
	xor	ebp, ebx
	mov	DWORD PTR tv2577[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2577[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	ecx, ebx
	add	eax, ebx
	mov	DWORD PTR tv380[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx+ebx]
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv380[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 15
	shr	edi, 15					; 0000000fH
	xor	ebx, ebp
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 2
	xor	edi, DWORD PTR _x$[esp+184]
	add	ebp, ebp
	add	ebp, ebp
	xor	ebp, ebx
	mov	DWORD PTR tv2573[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	ebx, 8
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2573[esp+180]
	add	eax, ebx
	add	ecx, ebx
	mov	DWORD PTR [edi+4], ebp
	add	edx, ebx
	add	edi, ebx
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+4]
	and	edi, DWORD PTR [eax+4]
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+4]
	mov	DWORD PTR tv717[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx]
	add	esi, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv717[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 7
	shr	edi, 7
	mov	DWORD PTR tv2571[esp+180], edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	ebx, ebp
	mov	ebp, DWORD PTR tv2571[esp+180]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 29
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 29					; 0000001dH
	mov	DWORD PTR tv2569[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	xor	ebp, ebx
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2569[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	add	edi, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	ecx, ebx
	add	eax, ebx
	add	esi, ebx
	mov	DWORD PTR tv869[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx+ebx]
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv869[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 13
	shr	edi, 13					; 0000000dH
	mov	DWORD PTR tv2567[esp+180], edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	ebx, ebp
	mov	ebp, DWORD PTR tv2567[esp+180]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 8
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 8
	xor	ebp, ebx
	mov	DWORD PTR tv2565[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2565[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	ecx, ebx
	mov	DWORD PTR tv264[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx+ebx]
	add	eax, ebx
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv264[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 11
	shr	edi, 11					; 0000000bH
	mov	DWORD PTR tv2563[esp+180], edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	ebx, ebp
	mov	ebp, DWORD PTR tv2563[esp+180]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 15
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 15					; 0000000fH
	xor	ebp, ebx
	mov	DWORD PTR tv2561[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2561[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	add	edi, ebx
	add	ecx, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	eax, ebx
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	mov	DWORD PTR tv185[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx]
	xor	ebx, edi
	mov	edi, DWORD PTR tv185[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 7
	xor	ebx, ebp
	shr	edi, 7
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 5
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 5
	xor	ebp, ebx
	mov	DWORD PTR tv2557[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2557[esp+180]
	mov	DWORD PTR [edi+4], ebp
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+ebx+4]
	add	ecx, ebx
	add	eax, ebx
	mov	DWORD PTR tv218[esp+184], edi
	mov	edi, DWORD PTR [esi+ebx]
	and	edi, DWORD PTR [edx+ebx]
	add	esi, ebx
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv218[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 6
	shr	edi, 6
	xor	ebx, ebp
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 31
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 31					; 0000001fH
	xor	ebp, ebx
	mov	DWORD PTR tv2553[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2553[esp+180]
	mov	ebx, 8
	mov	DWORD PTR [edi+4], ebp
	add	eax, ebx
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	edi, ebx
	mov	ebp, DWORD PTR [esi+ebx+4]
	and	ebp, DWORD PTR [edx+ebx+4]
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR [ecx+ebx+4]
	and	edi, DWORD PTR [eax+4]
	add	ecx, ebx
	add	esi, ebx
	mov	DWORD PTR tv271[esp+184], edi
	mov	edi, DWORD PTR [esi]
	and	edi, DWORD PTR [edx+ebx]
	add	edx, ebx
	mov	ebx, DWORD PTR [ecx]
	and	ebx, DWORD PTR [eax]
	xor	ebx, edi
	mov	edi, DWORD PTR tv271[esp+184]
	xor	edi, ebp
	mov	ebp, DWORD PTR tv2619[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	mov	ebp, DWORD PTR tv2621[esp+180]
	xor	edi, DWORD PTR [ebp+4]
	xor	ebx, DWORD PTR [ebp]
	xor	edi, DWORD PTR _S$[esp+184]
	xor	ebx, DWORD PTR _S$[esp+180]
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shrd	ebp, edi, 12
	shr	edi, 12					; 0000000cH
	xor	ebx, ebp
	mov	ebp, edi
	mov	edi, DWORD PTR _x$[esp+184]
	xor	edi, ebp
	mov	DWORD PTR _x$[esp+184], edi
	mov	ebp, ebx
	shld	edi, ebp, 9
	xor	edi, DWORD PTR _x$[esp+184]
	shl	ebp, 9
	xor	ebp, ebx
	mov	DWORD PTR tv2549[esp+180], edi
	mov	edi, DWORD PTR tv1969[esp+180]
	mov	DWORD PTR [edi], ebp
	mov	ebp, DWORD PTR tv2549[esp+180]
	mov	ebx, 8
	add	DWORD PTR tv2621[esp+180], ebx
	add	DWORD PTR tv2619[esp+180], ebx
	add	esi, ebx
	mov	DWORD PTR [edi+4], ebp
	add	edi, ebx
	mov	DWORD PTR tv2623[esp+180], esi
; Line 226
	mov	esi, DWORD PTR _S$[esp+184]
	add	eax, ebx
	add	ecx, ebx
	add	edx, ebx
	mov	DWORD PTR tv1969[esp+180], edi
	mov	edi, DWORD PTR _S$[esp+180]
	mov	ebx, esi
	shr	esi, 31					; 0000001fH
	xor	ebp, ebp
	and	edi, 606457760				; 2425cfa0H
	and	ebx, 1930543745				; 7311c281H
	xor	edi, esi
	mov	esi, DWORD PTR _S$[esp+180]
	xor	ebx, ebp
	mov	ebp, DWORD PTR _S$[esp+184]
	shld	ebp, esi, 1
	add	esi, esi
	xor	edi, esi
	xor	ebx, ebp
	sub	DWORD PTR tv769[esp+180], 1
	mov	DWORD PTR _S$[esp+180], edi
	mov	DWORD PTR _S$[esp+184], ebx
	jne	$LL8@md6_main_c
	pop	esi
	pop	ebp
	pop	ebx
$LN1@md6_main_c:
	pop	edi
; Line 229
	add	esp, 164				; 000000a4H
	ret	0
_md6_main_compression_loop ENDP
_TEXT	ENDS
PUBLIC	_md6_compress
EXTRN	_free:PROC
EXTRN	_calloc:PROC
EXTRN	_memset:PROC
; Function compile flags: /Ogtpy
;	COMDAT _md6_compress
_TEXT	SEGMENT
_C$ = 8							; size = 4
_N$ = 12						; size = 4
_r$ = 16						; size = 4
_A_as_given$ = 20					; size = 4
_A$ = 20						; size = 4
_md6_compress PROC					; COMDAT
; Line 257
	push	ebx
	mov	ebx, DWORD PTR _A$[esp]
	push	esi
; Line 260
	mov	esi, DWORD PTR _N$[esp+4]
	test	esi, esi
	mov	DWORD PTR _A_as_given$[esp+4], ebx
	jne	SHORT $LN7@md6_compre
	pop	esi
	mov	eax, 9
	pop	ebx
; Line 279
	ret	0
$LN7@md6_compre:
; Line 261
	cmp	DWORD PTR _C$[esp+4], 0
	jne	SHORT $LN6@md6_compre
	pop	esi
	mov	eax, 15					; 0000000fH
	pop	ebx
; Line 279
	ret	0
$LN6@md6_compre:
	push	ebp
; Line 262
	mov	ebp, DWORD PTR _r$[esp+8]
	cmp	ebp, 255				; 000000ffH
	ja	SHORT $LN4@md6_compre
; Line 264
	test	ebx, ebx
	jne	SHORT $LN2@md6_compre
	mov	eax, ebp
	shl	eax, 4
	add	eax, 89					; 00000059H
	push	8
	push	eax
	call	_calloc
	mov	ebx, eax
	add	esp, 8
; Line 265
	test	ebx, ebx
	jne	SHORT $LN2@md6_compre
	pop	ebp
	pop	esi
	mov	eax, 18					; 00000012H
	pop	ebx
; Line 279
	ret	0
$LN2@md6_compre:
	push	edi
; Line 269
	push	ebp
	mov	ecx, 178				; 000000b2H
	mov	edi, ebx
	push	ebx
	rep movsd
	call	_md6_main_compression_loop
; Line 271
	mov	edi, DWORD PTR _C$[esp+20]
	shl	ebp, 7
	add	esp, 8
; Line 273
	cmp	DWORD PTR _A_as_given$[esp+12], 0
	lea	esi, DWORD PTR [ebx+ebp+584]
	mov	ecx, 32					; 00000020H
	rep movsd
	pop	edi
	jne	SHORT $LN1@md6_compre
; Line 274
	add	ebp, 712				; 000002c8H
	push	ebp
	push	0
	push	ebx
	call	_memset
; Line 275
	push	ebx
	call	_free
	add	esp, 16					; 00000010H
$LN1@md6_compre:
	pop	ebp
	pop	esi
; Line 278
	xor	eax, eax
	pop	ebx
; Line 279
	ret	0
$LN4@md6_compre:
	pop	ebp
	pop	esi
; Line 262
	mov	eax, 17					; 00000011H
	pop	ebx
; Line 279
	ret	0
_md6_compress ENDP
_TEXT	ENDS
PUBLIC	_md6_make_control_word
; Function compile flags: /Ogtpy
;	COMDAT _md6_make_control_word
_TEXT	SEGMENT
_r$ = 8							; size = 4
_L$ = 12						; size = 4
_z$ = 16						; size = 4
_p$ = 20						; size = 4
_keylen$ = 24						; size = 4
_d$ = 28						; size = 4
_md6_make_control_word PROC				; COMDAT
; Line 311
	mov	eax, DWORD PTR _r$[esp-4]
	cdq
	shld	edx, eax, 8
	shl	eax, 8
	mov	ecx, eax
	mov	eax, DWORD PTR _L$[esp-4]
	push	esi
	mov	esi, edx
	cdq
	or	ecx, eax
	mov	eax, DWORD PTR _z$[esp]
	or	esi, edx
	shld	esi, ecx, 4
	shl	ecx, 4
	cdq
	or	ecx, eax
	mov	eax, DWORD PTR _p$[esp]
	or	esi, edx
	shld	esi, ecx, 16
	cdq
	shl	ecx, 16					; 00000010H
	or	ecx, eax
	mov	eax, DWORD PTR _keylen$[esp]
	or	esi, edx
	shld	esi, ecx, 8
	cdq
	shl	ecx, 8
	or	ecx, eax
	mov	eax, DWORD PTR _d$[esp]
	or	esi, edx
	shld	esi, ecx, 12
	cdq
	shl	ecx, 12					; 0000000cH
	or	esi, edx
	or	ecx, eax
	mov	edx, esi
	mov	eax, ecx
	pop	esi
; Line 312
	ret	0
_md6_make_control_word ENDP
_TEXT	ENDS
PUBLIC	_md6_make_nodeID
; Function compile flags: /Ogtpy
;	COMDAT _md6_make_nodeID
_TEXT	SEGMENT
_ell$ = 8						; size = 4
_i$ = 12						; size = 4
_md6_make_nodeID PROC					; COMDAT
; Line 332
	mov	eax, DWORD PTR _ell$[esp-4]
	cdq
	mov	ecx, eax
	mov	eax, DWORD PTR _i$[esp-4]
	cdq
	push	esi
	xor	esi, esi
	shl	ecx, 24					; 00000018H
	or	esi, eax
	or	ecx, edx
	mov	eax, esi
	mov	edx, ecx
	pop	esi
; Line 333
	ret	0
_md6_make_nodeID ENDP
_TEXT	ENDS
PUBLIC	_md6_pack
; Function compile flags: /Ogtpy
;	COMDAT _md6_pack
_TEXT	SEGMENT
_N$ = 8							; size = 4
_Q$ = 12						; size = 4
_K$ = 16						; size = 4
_ell$ = 20						; size = 4
_i$ = 24						; size = 4
_r$ = 28						; size = 4
_L$ = 32						; size = 4
_z$ = 36						; size = 4
_p$ = 40						; size = 4
_keylen$ = 44						; size = 4
_d$ = 48						; size = 4
_B$ = 52						; size = 4
_md6_pack PROC						; COMDAT
; Line 351
	mov	ecx, DWORD PTR _N$[esp-4]
; Line 353
	mov	edx, DWORD PTR _Q$[esp-4]
	push	esi
	push	edi
	mov	eax, ecx
	sub	edx, ecx
	mov	esi, 15					; 0000000fH
$LL6@md6_pack:
	mov	edi, DWORD PTR [edx+eax]
	mov	DWORD PTR [eax], edi
	mov	edi, DWORD PTR [edx+eax+4]
	mov	DWORD PTR [eax+4], edi
	add	eax, 8
	sub	esi, 1
	jne	SHORT $LL6@md6_pack
; Line 355
	mov	eax, DWORD PTR _K$[esp+4]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [ecx+120], edx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+124], edx
	mov	edx, DWORD PTR [eax+8]
	mov	DWORD PTR [ecx+128], edx
	mov	edx, DWORD PTR [eax+12]
	mov	DWORD PTR [ecx+132], edx
	mov	edx, DWORD PTR [eax+16]
	mov	DWORD PTR [ecx+136], edx
	mov	edx, DWORD PTR [eax+20]
	mov	DWORD PTR [ecx+140], edx
	mov	edx, DWORD PTR [eax+24]
	mov	DWORD PTR [ecx+144], edx
	mov	edx, DWORD PTR [eax+28]
	mov	DWORD PTR [ecx+148], edx
	mov	edx, DWORD PTR [eax+32]
	mov	DWORD PTR [ecx+152], edx
	mov	edx, DWORD PTR [eax+36]
	mov	DWORD PTR [ecx+156], edx
	mov	edx, DWORD PTR [eax+40]
	mov	DWORD PTR [ecx+160], edx
	mov	edx, DWORD PTR [eax+44]
	mov	DWORD PTR [ecx+164], edx
	mov	edx, DWORD PTR [eax+48]
	mov	DWORD PTR [ecx+168], edx
	mov	edx, DWORD PTR [eax+52]
	mov	DWORD PTR [ecx+172], edx
	mov	edx, DWORD PTR [eax+56]
	mov	DWORD PTR [ecx+176], edx
	mov	eax, DWORD PTR [eax+60]
	mov	DWORD PTR [ecx+180], eax
; Line 357
	mov	eax, DWORD PTR _ell$[esp+4]
	cdq
	mov	esi, eax
	mov	eax, DWORD PTR _i$[esp+4]
	cdq
	shl	esi, 24					; 00000018H
	or	esi, edx
	xor	edi, edi
	or	edi, eax
; Line 367
	mov	eax, DWORD PTR _r$[esp+4]
	cdq
	shld	edx, eax, 8
	mov	DWORD PTR [ecx+188], esi
	shl	eax, 8
	mov	DWORD PTR [ecx+184], edi
	mov	esi, eax
	mov	eax, DWORD PTR _L$[esp+4]
	mov	edi, edx
	cdq
	or	esi, eax
	mov	eax, DWORD PTR _z$[esp+4]
	or	edi, edx
	shld	edi, esi, 4
	shl	esi, 4
	cdq
	or	esi, eax
	mov	eax, DWORD PTR _p$[esp+4]
	or	edi, edx
	shld	edi, esi, 16
	shl	esi, 16					; 00000010H
	cdq
	or	esi, eax
	mov	eax, DWORD PTR _keylen$[esp+4]
	or	edi, edx
	shld	edi, esi, 8
	shl	esi, 8
	cdq
	or	esi, eax
	mov	eax, DWORD PTR _d$[esp+4]
	or	edi, edx
	shld	edi, esi, 12
	cdq
	shl	esi, 12					; 0000000cH
	or	esi, eax
	or	edi, edx
; Line 373
	mov	DWORD PTR [ecx+196], edi
	mov	DWORD PTR [ecx+192], esi
; Line 376
	lea	edi, DWORD PTR [ecx+200]
	mov	esi, DWORD PTR _B$[esp+4]
	mov	ecx, 128				; 00000080H
	rep movsd
	pop	edi
	pop	esi
; Line 377
	ret	0
_md6_pack ENDP
_TEXT	ENDS
PUBLIC	_md6_standard_compress
EXTRN	__chkstk:PROC
; Function compile flags: /Ogtpy
;	COMDAT _md6_standard_compress
_TEXT	SEGMENT
_N$ = -40712						; size = 712
_A$ = -40000						; size = 40000
_C$ = 8							; size = 4
_Q$ = 12						; size = 4
_K$ = 16						; size = 4
_ell$ = 20						; size = 4
_i$ = 24						; size = 4
_r$ = 28						; size = 4
_L$ = 32						; size = 4
_z$ = 36						; size = 4
_p$ = 40						; size = 4
_keylen$ = 44						; size = 4
_d$ = 48						; size = 4
_B$ = 52						; size = 4
_md6_standard_compress PROC				; COMDAT
; Line 411
	mov	eax, 40712				; 00009f08H
	call	__chkstk
; Line 415
	cmp	DWORD PTR _C$[esp+40708], 0
	jne	SHORT $LN13@md6_standa
	mov	eax, 15					; 0000000fH
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN13@md6_standa:
; Line 416
	cmp	DWORD PTR _B$[esp+40708], 0
	jne	SHORT $LN12@md6_standa
	mov	eax, 10					; 0000000aH
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN12@md6_standa:
; Line 417
	xor	eax, eax
	push	esi
	mov	esi, DWORD PTR _r$[esp+40712]
	cmp	esi, 255				; 000000ffH
	setg	al
	xor	ecx, ecx
	test	esi, esi
	setl	cl
	or	eax, ecx
	je	SHORT $LN11@md6_standa
	mov	eax, 17					; 00000011H
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN11@md6_standa:
; Line 418
	xor	edx, edx
	push	ebx
	mov	ebx, DWORD PTR _L$[esp+40716]
	cmp	ebx, 255				; 000000ffH
	setg	dl
	xor	eax, eax
	test	ebx, ebx
	setl	al
	or	edx, eax
	je	SHORT $LN10@md6_standa
	pop	ebx
	mov	eax, 16					; 00000010H
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN10@md6_standa:
; Line 419
	mov	ecx, DWORD PTR _ell$[esp+40716]
	cmp	ecx, 255				; 000000ffH
	ja	$LN8@md6_standa
; Line 420
	mov	edx, DWORD PTR _p$[esp+40716]
	cmp	edx, 4096				; 00001000H
	ja	$LN6@md6_standa
; Line 421
	mov	eax, DWORD PTR _d$[esp+40716]
	push	edi
	lea	edi, DWORD PTR [eax-1]
	cmp	edi, 511				; 000001ffH
	ja	$LN4@md6_standa
	push	ebp
; Line 422
	mov	ebp, DWORD PTR _K$[esp+40724]
	test	ebp, ebp
	jne	SHORT $LN3@md6_standa
	pop	ebp
	pop	edi
	pop	ebx
	mov	eax, 13					; 0000000dH
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN3@md6_standa:
; Line 423
	mov	edi, DWORD PTR _Q$[esp+40724]
	test	edi, edi
	jne	SHORT $LN2@md6_standa
	pop	ebp
	pop	edi
	pop	ebx
	mov	eax, 14					; 0000000eH
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN2@md6_standa:
; Line 426
	push	DWORD PTR _B$[esp+40724]
	push	eax
	mov	eax, DWORD PTR _keylen$[esp+40732]
	push	eax
	mov	eax, DWORD PTR _i$[esp+40736]
	push	edx
	mov	edx, DWORD PTR _z$[esp+40740]
	push	edx
	push	ebx
	push	esi
	push	eax
	push	ecx
	push	ebp
	lea	ecx, DWORD PTR _N$[esp+40768]
	push	edi
	push	ecx
	call	_md6_pack
; Line 430
	mov	eax, DWORD PTR _compression_hook
	add	esp, 48					; 00000030H
	test	eax, eax
	je	SHORT $LN16@md6_standa
; Line 431
	mov	edx, DWORD PTR _B$[esp+40724]
	mov	ecx, DWORD PTR _d$[esp+40724]
	push	edx
	mov	edx, DWORD PTR _keylen$[esp+40728]
	push	ecx
	mov	ecx, DWORD PTR _p$[esp+40732]
	push	edx
	mov	edx, DWORD PTR _z$[esp+40736]
	push	ecx
	mov	ecx, DWORD PTR _i$[esp+40740]
	push	edx
	mov	edx, DWORD PTR _ell$[esp+40744]
	push	ebx
	push	esi
	push	ecx
	mov	ecx, DWORD PTR _C$[esp+40756]
	push	edx
	push	ebp
	push	edi
	push	ecx
	call	eax
	add	esp, 48					; 00000030H
$LN16@md6_standa:
; Line 433
	mov	ecx, DWORD PTR _C$[esp+40724]
	lea	edx, DWORD PTR _A$[esp+40728]
	push	edx
	push	esi
	lea	eax, DWORD PTR _N$[esp+40736]
	push	eax
	push	ecx
	call	_md6_compress
	add	esp, 16					; 00000010H
	pop	ebp
	pop	edi
	pop	ebx
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN4@md6_standa:
	pop	edi
	pop	ebx
; Line 421
	mov	eax, 2
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN6@md6_standa:
	pop	ebx
; Line 420
	mov	eax, 12					; 0000000cH
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
$LN8@md6_standa:
	pop	ebx
; Line 419
	mov	eax, 11					; 0000000bH
	pop	esi
; Line 434
	add	esp, 40712				; 00009f08H
	ret	0
_md6_standard_compress ENDP
_TEXT	ENDS
END
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.