	; Don't even think of reading this code
	; It was automatically generated by sha1-586.pl
	; Which is a perl program used to generate the x86 assember for
	; any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
	; eric <eay@cryptsoft.com>
	; 
segment .text
global	_sha1_block_asm_data_order
_sha1_block_asm_data_order:
	mov	ecx,		[12+esp]
	push	esi
	shl	ecx,		6
	mov	esi,		[12+esp]
	push	ebp
	add	ecx,		esi
	push	ebx
	mov	ebp,		[16+esp]
	push	edi
	mov	edx,		[12+ebp]
	sub	esp,		108
	mov	edi,		[16+ebp]
	mov	ebx,		[8+ebp]
	mov	[68+esp],	ecx
	; First we need to setup the X array
L000start:
	; First, load the words onto the stack in network byte order
	mov	eax,		[esi]
	mov	ecx,		[4+esi]
	bswap	eax
	bswap	ecx
	mov	[esp],		eax
	mov	[4+esp],	ecx
	mov	eax,		[8+esi]
	mov	ecx,		[12+esi]
	bswap	eax
	bswap	ecx
	mov	[8+esp],	eax
	mov	[12+esp],	ecx
	mov	eax,		[16+esi]
	mov	ecx,		[20+esi]
	bswap	eax
	bswap	ecx
	mov	[16+esp],	eax
	mov	[20+esp],	ecx
	mov	eax,		[24+esi]
	mov	ecx,		[28+esi]
	bswap	eax
	bswap	ecx
	mov	[24+esp],	eax
	mov	[28+esp],	ecx
	mov	eax,		[32+esi]
	mov	ecx,		[36+esi]
	bswap	eax
	bswap	ecx
	mov	[32+esp],	eax
	mov	[36+esp],	ecx
	mov	eax,		[40+esi]
	mov	ecx,		[44+esi]
	bswap	eax
	bswap	ecx
	mov	[40+esp],	eax
	mov	[44+esp],	ecx
	mov	eax,		[48+esi]
	mov	ecx,		[52+esi]
	bswap	eax
	bswap	ecx
	mov	[48+esp],	eax
	mov	[52+esp],	ecx
	mov	eax,		[56+esi]
	mov	ecx,		[60+esi]
	bswap	eax
	bswap	ecx
	mov	[56+esp],	eax
	mov	[60+esp],	ecx
	; We now have the X array on the stack
	; starting at sp-4
	mov	[132+esp],	esi
L001shortcut:
	; 
	; Start processing
	mov	eax,		[ebp]
	mov	ecx,		[4+ebp]
	; 00_15 0
	mov	esi,		ebx
	mov	ebp,		eax
	xor	esi,		edx
	rol	ebp,		5
	and	esi,		ecx
	add	ebp,		edi
	ror	ecx,		1
	mov	edi,		[esp]
	ror	ecx,		1
	xor	esi,		edx
	lea	ebp,		[1518500249+edi*1+ebp]
	mov	edi,		ecx
	add	esi,		ebp
	xor	edi,		ebx
	mov	ebp,		esi
	and	edi,		eax
	rol	ebp,		5
	add	ebp,		edx
	mov	edx,		[4+esp]
	ror	eax,		1
	xor	edi,		ebx
	ror	eax,		1
	lea	ebp,		[1518500249+edx*1+ebp]
	add	edi,		ebp
	; 00_15 2
	mov	edx,		eax
	mov	ebp,		edi
	xor	edx,		ecx
	rol	ebp,		5
	and	edx,		esi
	add	ebp,		ebx
	ror	esi,		1
	mov	ebx,		[8+esp]
	ror	esi,		1
	xor	edx,		ecx
	lea	ebp,		[1518500249+ebx*1+ebp]
	mov	ebx,		esi
	add	edx,		ebp
	xor	ebx,		eax
	mov	ebp,		edx
	and	ebx,		edi
	rol	ebp,		5
	add	ebp,		ecx
	mov	ecx,		[12+esp]
	ror	edi,		1
	xor	ebx,		eax
	ror	edi,		1
	lea	ebp,		[1518500249+ecx*1+ebp]
	add	ebx,		ebp
	; 00_15 4
	mov	ecx,		edi
	mov	ebp,		ebx
	xor	ecx,		esi
	rol	ebp,		5
	and	ecx,		edx
	add	ebp,		eax
	ror	edx,		1
	mov	eax,		[16+esp]
	ror	edx,		1
	xor	ecx,		esi
	lea	ebp,		[1518500249+eax*1+ebp]
	mov	eax,		edx
	add	ecx,		ebp
	xor	eax,		edi
	mov	ebp,		ecx
	and	eax,		ebx
	rol	ebp,		5
	add	ebp,		esi
	mov	esi,		[20+esp]
	ror	ebx,		1
	xor	eax,		edi
	ror	ebx,		1
	lea	ebp,		[1518500249+esi*1+ebp]
	add	eax,		ebp
	; 00_15 6
	mov	esi,		ebx
	mov	ebp,		eax
	xor	esi,		edx
	rol	ebp,		5
	and	esi,		ecx
	add	ebp,		edi
	ror	ecx,		1
	mov	edi,		[24+esp]
	ror	ecx,		1
	xor	esi,		edx
	lea	ebp,		[1518500249+edi*1+ebp]
	mov	edi,		ecx
	add	esi,		ebp
	xor	edi,		ebx
	mov	ebp,		esi
	and	edi,		eax
	rol	ebp,		5
	add	ebp,		edx
	mov	edx,		[28+esp]
	ror	eax,		1
	xor	edi,		ebx
	ror	eax,		1
	lea	ebp,		[1518500249+edx*1+ebp]
	add	edi,		ebp
	; 00_15 8
	mov	edx,		eax
	mov	ebp,		edi
	xor	edx,		ecx
	rol	ebp,		5
	and	edx,		esi
	add	ebp,		ebx
	ror	esi,		1
	mov	ebx,		[32+esp]
	ror	esi,		1
	xor	edx,		ecx
	lea	ebp,		[1518500249+ebx*1+ebp]
	mov	ebx,		esi
	add	edx,		ebp
	xor	ebx,		eax
	mov	ebp,		edx
	and	ebx,		edi
	rol	ebp,		5
	add	ebp,		ecx
	mov	ecx,		[36+esp]
	ror	edi,		1
	xor	ebx,		eax
	ror	edi,		1
	lea	ebp,		[1518500249+ecx*1+ebp]
	add	ebx,		ebp
	; 00_15 10
	mov	ecx,		edi
	mov	ebp,		ebx
	xor	ecx,		esi
	rol	ebp,		5
	and	ecx,		edx
	add	ebp,		eax
	ror	edx,		1
	mov	eax,		[40+esp]
	ror	edx,		1
	xor	ecx,		esi
	lea	ebp,		[1518500249+eax*1+ebp]
	mov	eax,		edx
	add	ecx,		ebp
	xor	eax,		edi
	mov	ebp,		ecx
	and	eax,		ebx
	rol	ebp,		5
	add	ebp,		esi
	mov	esi,		[44+esp]
	ror	ebx,		1
	xor	eax,		edi
	ror	ebx,		1
	lea	ebp,		[1518500249+esi*1+ebp]
	add	eax,		ebp
	; 00_15 12
	mov	esi,		ebx
	mov	ebp,		eax
	xor	esi,		edx
	rol	ebp,		5
	and	esi,		ecx
	add	ebp,		edi
	ror	ecx,		1
	mov	edi,		[48+esp]
	ror	ecx,		1
	xor	esi,		edx
	lea	ebp,		[1518500249+edi*1+ebp]
	mov	edi,		ecx
	add	esi,		ebp
	xor	edi,		ebx
	mov	ebp,		esi
	and	edi,		eax
	rol	ebp,		5
	add	ebp,		edx
	mov	edx,		[52+esp]
	ror	eax,		1
	xor	edi,		ebx
	ror	eax,		1
	lea	ebp,		[1518500249+edx*1+ebp]
	add	edi,		ebp
	; 00_15 14
	mov	edx,		eax
	mov	ebp,		edi
	xor	edx,		ecx
	rol	ebp,		5
	and	edx,		esi
	add	ebp,		ebx
	ror	esi,		1
	mov	ebx,		[56+esp]
	ror	esi,		1
	xor	edx,		ecx
	lea	ebp,		[1518500249+ebx*1+ebp]
	mov	ebx,		esi
	add	edx,		ebp
	xor	ebx,		eax
	mov	ebp,		edx
	and	ebx,		edi
	rol	ebp,		5
	add	ebp,		ecx
	mov	ecx,		[60+esp]
	ror	edi,		1
	xor	ebx,		eax
	ror	edi,		1
	lea	ebp,		[1518500249+ecx*1+ebp]
	add	ebx,		ebp
	; 16_19 16
	nop
	mov	ebp,		[esp]
	mov	ecx,		[8+esp]
	xor	ecx,		ebp
	mov	ebp,		[32+esp]
	xor	ecx,		ebp
	mov	ebp,		[52+esp]
	xor	ecx,		ebp
	mov	ebp,		edi
	rol	ecx,		1
	xor	ebp,		esi
	mov	[esp],		ecx
	and	ebp,		edx
	lea	ecx,		[1518500249+eax*1+ecx]
	xor	ebp,		esi
	mov	eax,		ebx
	add	ecx,		ebp
	rol	eax,		5
	ror	edx,		1
	add	ecx,		eax
	mov	eax,		[4+esp]
	mov	ebp,		[12+esp]
	xor	eax,		ebp
	mov	ebp,		[36+esp]
	xor	eax,		ebp
	mov	ebp,		[56+esp]
	ror	edx,		1
	xor	eax,		ebp
	rol	eax,		1
	mov	ebp,		edx
	xor	ebp,		edi
	mov	[4+esp],	eax
	and	ebp,		ebx
	lea	eax,		[1518500249+esi*1+eax]
	xor	ebp,		edi
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	eax,		esi
	ror	ebx,		1
	add	eax,		ebp
	; 16_19 18
	mov	ebp,		[8+esp]
	mov	esi,		[16+esp]
	xor	esi,		ebp
	mov	ebp,		[40+esp]
	xor	esi,		ebp
	mov	ebp,		[60+esp]
	xor	esi,		ebp
	mov	ebp,		ebx
	rol	esi,		1
	xor	ebp,		edx
	mov	[8+esp],	esi
	and	ebp,		ecx
	lea	esi,		[1518500249+edi*1+esi]
	xor	ebp,		edx
	mov	edi,		eax
	add	esi,		ebp
	rol	edi,		5
	ror	ecx,		1
	add	esi,		edi
	mov	edi,		[12+esp]
	mov	ebp,		[20+esp]
	xor	edi,		ebp
	mov	ebp,		[44+esp]
	xor	edi,		ebp
	mov	ebp,		[esp]
	ror	ecx,		1
	xor	edi,		ebp
	rol	edi,		1
	mov	ebp,		ecx
	xor	ebp,		ebx
	mov	[12+esp],	edi
	and	ebp,		eax
	lea	edi,		[1518500249+edx*1+edi]
	xor	ebp,		ebx
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	edi,		edx
	ror	eax,		1
	add	edi,		ebp
	; 20_39 20
	mov	edx,		[16+esp]
	mov	ebp,		[24+esp]
	xor	edx,		ebp
	mov	ebp,		[48+esp]
	xor	edx,		ebp
	mov	ebp,		[4+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	xor	ebp,		eax
	mov	[16+esp],	edx
	xor	ebp,		ecx
	lea	edx,		[1859775393+ebx*1+edx]
	mov	ebx,		edi
	rol	ebx,		5
	ror	esi,		1
	add	ebx,		ebp
	ror	esi,		1
	add	edx,		ebx
	; 20_39 21
	mov	ebx,		[20+esp]
	mov	ebp,		[28+esp]
	xor	ebx,		ebp
	mov	ebp,		[52+esp]
	xor	ebx,		ebp
	mov	ebp,		[8+esp]
	xor	ebx,		ebp
	mov	ebp,		edi
	rol	ebx,		1
	xor	ebp,		esi
	mov	[20+esp],	ebx
	xor	ebp,		eax
	lea	ebx,		[1859775393+ecx*1+ebx]
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ecx,		ebp
	ror	edi,		1
	add	ebx,		ecx
	; 20_39 22
	mov	ecx,		[24+esp]
	mov	ebp,		[32+esp]
	xor	ecx,		ebp
	mov	ebp,		[56+esp]
	xor	ecx,		ebp
	mov	ebp,		[12+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	xor	ebp,		edi
	mov	[24+esp],	ecx
	xor	ebp,		esi
	lea	ecx,		[1859775393+eax*1+ecx]
	mov	eax,		ebx
	rol	eax,		5
	ror	edx,		1
	add	eax,		ebp
	ror	edx,		1
	add	ecx,		eax
	; 20_39 23
	mov	eax,		[28+esp]
	mov	ebp,		[36+esp]
	xor	eax,		ebp
	mov	ebp,		[60+esp]
	xor	eax,		ebp
	mov	ebp,		[16+esp]
	xor	eax,		ebp
	mov	ebp,		ebx
	rol	eax,		1
	xor	ebp,		edx
	mov	[28+esp],	eax
	xor	ebp,		edi
	lea	eax,		[1859775393+esi*1+eax]
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	esi,		ebp
	ror	ebx,		1
	add	eax,		esi
	; 20_39 24
	mov	esi,		[32+esp]
	mov	ebp,		[40+esp]
	xor	esi,		ebp
	mov	ebp,		[esp]
	xor	esi,		ebp
	mov	ebp,		[20+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	xor	ebp,		ebx
	mov	[32+esp],	esi
	xor	ebp,		edx
	lea	esi,		[1859775393+edi*1+esi]
	mov	edi,		eax
	rol	edi,		5
	ror	ecx,		1
	add	edi,		ebp
	ror	ecx,		1
	add	esi,		edi
	; 20_39 25
	mov	edi,		[36+esp]
	mov	ebp,		[44+esp]
	xor	edi,		ebp
	mov	ebp,		[4+esp]
	xor	edi,		ebp
	mov	ebp,		[24+esp]
	xor	edi,		ebp
	mov	ebp,		eax
	rol	edi,		1
	xor	ebp,		ecx
	mov	[36+esp],	edi
	xor	ebp,		ebx
	lea	edi,		[1859775393+edx*1+edi]
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	edx,		ebp
	ror	eax,		1
	add	edi,		edx
	; 20_39 26
	mov	edx,		[40+esp]
	mov	ebp,		[48+esp]
	xor	edx,		ebp
	mov	ebp,		[8+esp]
	xor	edx,		ebp
	mov	ebp,		[28+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	xor	ebp,		eax
	mov	[40+esp],	edx
	xor	ebp,		ecx
	lea	edx,		[1859775393+ebx*1+edx]
	mov	ebx,		edi
	rol	ebx,		5
	ror	esi,		1
	add	ebx,		ebp
	ror	esi,		1
	add	edx,		ebx
	; 20_39 27
	mov	ebx,		[44+esp]
	mov	ebp,		[52+esp]
	xor	ebx,		ebp
	mov	ebp,		[12+esp]
	xor	ebx,		ebp
	mov	ebp,		[32+esp]
	xor	ebx,		ebp
	mov	ebp,		edi
	rol	ebx,		1
	xor	ebp,		esi
	mov	[44+esp],	ebx
	xor	ebp,		eax
	lea	ebx,		[1859775393+ecx*1+ebx]
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ecx,		ebp
	ror	edi,		1
	add	ebx,		ecx
	; 20_39 28
	mov	ecx,		[48+esp]
	mov	ebp,		[56+esp]
	xor	ecx,		ebp
	mov	ebp,		[16+esp]
	xor	ecx,		ebp
	mov	ebp,		[36+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	xor	ebp,		edi
	mov	[48+esp],	ecx
	xor	ebp,		esi
	lea	ecx,		[1859775393+eax*1+ecx]
	mov	eax,		ebx
	rol	eax,		5
	ror	edx,		1
	add	eax,		ebp
	ror	edx,		1
	add	ecx,		eax
	; 20_39 29
	mov	eax,		[52+esp]
	mov	ebp,		[60+esp]
	xor	eax,		ebp
	mov	ebp,		[20+esp]
	xor	eax,		ebp
	mov	ebp,		[40+esp]
	xor	eax,		ebp
	mov	ebp,		ebx
	rol	eax,		1
	xor	ebp,		edx
	mov	[52+esp],	eax
	xor	ebp,		edi
	lea	eax,		[1859775393+esi*1+eax]
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	esi,		ebp
	ror	ebx,		1
	add	eax,		esi
	; 20_39 30
	mov	esi,		[56+esp]
	mov	ebp,		[esp]
	xor	esi,		ebp
	mov	ebp,		[24+esp]
	xor	esi,		ebp
	mov	ebp,		[44+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	xor	ebp,		ebx
	mov	[56+esp],	esi
	xor	ebp,		edx
	lea	esi,		[1859775393+edi*1+esi]
	mov	edi,		eax
	rol	edi,		5
	ror	ecx,		1
	add	edi,		ebp
	ror	ecx,		1
	add	esi,		edi
	; 20_39 31
	mov	edi,		[60+esp]
	mov	ebp,		[4+esp]
	xor	edi,		ebp
	mov	ebp,		[28+esp]
	xor	edi,		ebp
	mov	ebp,		[48+esp]
	xor	edi,		ebp
	mov	ebp,		eax
	rol	edi,		1
	xor	ebp,		ecx
	mov	[60+esp],	edi
	xor	ebp,		ebx
	lea	edi,		[1859775393+edx*1+edi]
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	edx,		ebp
	ror	eax,		1
	add	edi,		edx
	; 20_39 32
	mov	edx,		[esp]
	mov	ebp,		[8+esp]
	xor	edx,		ebp
	mov	ebp,		[32+esp]
	xor	edx,		ebp
	mov	ebp,		[52+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	xor	ebp,		eax
	mov	[esp],		edx
	xor	ebp,		ecx
	lea	edx,		[1859775393+ebx*1+edx]
	mov	ebx,		edi
	rol	ebx,		5
	ror	esi,		1
	add	ebx,		ebp
	ror	esi,		1
	add	edx,		ebx
	; 20_39 33
	mov	ebx,		[4+esp]
	mov	ebp,		[12+esp]
	xor	ebx,		ebp
	mov	ebp,		[36+esp]
	xor	ebx,		ebp
	mov	ebp,		[56+esp]
	xor	ebx,		ebp
	mov	ebp,		edi
	rol	ebx,		1
	xor	ebp,		esi
	mov	[4+esp],	ebx
	xor	ebp,		eax
	lea	ebx,		[1859775393+ecx*1+ebx]
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ecx,		ebp
	ror	edi,		1
	add	ebx,		ecx
	; 20_39 34
	mov	ecx,		[8+esp]
	mov	ebp,		[16+esp]
	xor	ecx,		ebp
	mov	ebp,		[40+esp]
	xor	ecx,		ebp
	mov	ebp,		[60+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	xor	ebp,		edi
	mov	[8+esp],	ecx
	xor	ebp,		esi
	lea	ecx,		[1859775393+eax*1+ecx]
	mov	eax,		ebx
	rol	eax,		5
	ror	edx,		1
	add	eax,		ebp
	ror	edx,		1
	add	ecx,		eax
	; 20_39 35
	mov	eax,		[12+esp]
	mov	ebp,		[20+esp]
	xor	eax,		ebp
	mov	ebp,		[44+esp]
	xor	eax,		ebp
	mov	ebp,		[esp]
	xor	eax,		ebp
	mov	ebp,		ebx
	rol	eax,		1
	xor	ebp,		edx
	mov	[12+esp],	eax
	xor	ebp,		edi
	lea	eax,		[1859775393+esi*1+eax]
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	esi,		ebp
	ror	ebx,		1
	add	eax,		esi
	; 20_39 36
	mov	esi,		[16+esp]
	mov	ebp,		[24+esp]
	xor	esi,		ebp
	mov	ebp,		[48+esp]
	xor	esi,		ebp
	mov	ebp,		[4+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	xor	ebp,		ebx
	mov	[16+esp],	esi
	xor	ebp,		edx
	lea	esi,		[1859775393+edi*1+esi]
	mov	edi,		eax
	rol	edi,		5
	ror	ecx,		1
	add	edi,		ebp
	ror	ecx,		1
	add	esi,		edi
	; 20_39 37
	mov	edi,		[20+esp]
	mov	ebp,		[28+esp]
	xor	edi,		ebp
	mov	ebp,		[52+esp]
	xor	edi,		ebp
	mov	ebp,		[8+esp]
	xor	edi,		ebp
	mov	ebp,		eax
	rol	edi,		1
	xor	ebp,		ecx
	mov	[20+esp],	edi
	xor	ebp,		ebx
	lea	edi,		[1859775393+edx*1+edi]
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	edx,		ebp
	ror	eax,		1
	add	edi,		edx
	; 20_39 38
	mov	edx,		[24+esp]
	mov	ebp,		[32+esp]
	xor	edx,		ebp
	mov	ebp,		[56+esp]
	xor	edx,		ebp
	mov	ebp,		[12+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	xor	ebp,		eax
	mov	[24+esp],	edx
	xor	ebp,		ecx
	lea	edx,		[1859775393+ebx*1+edx]
	mov	ebx,		edi
	rol	ebx,		5
	ror	esi,		1
	add	ebx,		ebp
	ror	esi,		1
	add	edx,		ebx
	; 20_39 39
	mov	ebx,		[28+esp]
	mov	ebp,		[36+esp]
	xor	ebx,		ebp
	mov	ebp,		[60+esp]
	xor	ebx,		ebp
	mov	ebp,		[16+esp]
	xor	ebx,		ebp
	mov	ebp,		edi
	rol	ebx,		1
	xor	ebp,		esi
	mov	[28+esp],	ebx
	xor	ebp,		eax
	lea	ebx,		[1859775393+ecx*1+ebx]
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ecx,		ebp
	ror	edi,		1
	add	ebx,		ecx
	; 40_59 40
	mov	ecx,		[32+esp]
	mov	ebp,		[40+esp]
	xor	ecx,		ebp
	mov	ebp,		[esp]
	xor	ecx,		ebp
	mov	ebp,		[20+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	or	ebp,		edi
	mov	[32+esp],	ecx
	and	ebp,		esi
	lea	ecx,		[2400959708+eax*1+ecx]
	mov	eax,		edx
	ror	edx,		1
	and	eax,		edi
	or	ebp,		eax
	mov	eax,		ebx
	rol	eax,		5
	add	ebp,		eax
	mov	eax,		[36+esp]
	add	ecx,		ebp
	mov	ebp,		[44+esp]
	xor	eax,		ebp
	mov	ebp,		[4+esp]
	xor	eax,		ebp
	mov	ebp,		[24+esp]
	ror	edx,		1
	xor	eax,		ebp
	rol	eax,		1
	mov	ebp,		ebx
	mov	[36+esp],	eax
	or	ebp,		edx
	lea	eax,		[2400959708+esi*1+eax]
	mov	esi,		ebx
	and	ebp,		edi
	and	esi,		edx
	or	ebp,		esi
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	ebp,		esi
	ror	ebx,		1
	add	eax,		ebp
	; 40_59 41
	; 40_59 42
	mov	esi,		[40+esp]
	mov	ebp,		[48+esp]
	xor	esi,		ebp
	mov	ebp,		[8+esp]
	xor	esi,		ebp
	mov	ebp,		[28+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	or	ebp,		ebx
	mov	[40+esp],	esi
	and	ebp,		edx
	lea	esi,		[2400959708+edi*1+esi]
	mov	edi,		ecx
	ror	ecx,		1
	and	edi,		ebx
	or	ebp,		edi
	mov	edi,		eax
	rol	edi,		5
	add	ebp,		edi
	mov	edi,		[44+esp]
	add	esi,		ebp
	mov	ebp,		[52+esp]
	xor	edi,		ebp
	mov	ebp,		[12+esp]
	xor	edi,		ebp
	mov	ebp,		[32+esp]
	ror	ecx,		1
	xor	edi,		ebp
	rol	edi,		1
	mov	ebp,		eax
	mov	[44+esp],	edi
	or	ebp,		ecx
	lea	edi,		[2400959708+edx*1+edi]
	mov	edx,		eax
	and	ebp,		ebx
	and	edx,		ecx
	or	ebp,		edx
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	ebp,		edx
	ror	eax,		1
	add	edi,		ebp
	; 40_59 43
	; 40_59 44
	mov	edx,		[48+esp]
	mov	ebp,		[56+esp]
	xor	edx,		ebp
	mov	ebp,		[16+esp]
	xor	edx,		ebp
	mov	ebp,		[36+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	or	ebp,		eax
	mov	[48+esp],	edx
	and	ebp,		ecx
	lea	edx,		[2400959708+ebx*1+edx]
	mov	ebx,		esi
	ror	esi,		1
	and	ebx,		eax
	or	ebp,		ebx
	mov	ebx,		edi
	rol	ebx,		5
	add	ebp,		ebx
	mov	ebx,		[52+esp]
	add	edx,		ebp
	mov	ebp,		[60+esp]
	xor	ebx,		ebp
	mov	ebp,		[20+esp]
	xor	ebx,		ebp
	mov	ebp,		[40+esp]
	ror	esi,		1
	xor	ebx,		ebp
	rol	ebx,		1
	mov	ebp,		edi
	mov	[52+esp],	ebx
	or	ebp,		esi
	lea	ebx,		[2400959708+ecx*1+ebx]
	mov	ecx,		edi
	and	ebp,		eax
	and	ecx,		esi
	or	ebp,		ecx
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ebp,		ecx
	ror	edi,		1
	add	ebx,		ebp
	; 40_59 45
	; 40_59 46
	mov	ecx,		[56+esp]
	mov	ebp,		[esp]
	xor	ecx,		ebp
	mov	ebp,		[24+esp]
	xor	ecx,		ebp
	mov	ebp,		[44+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	or	ebp,		edi
	mov	[56+esp],	ecx
	and	ebp,		esi
	lea	ecx,		[2400959708+eax*1+ecx]
	mov	eax,		edx
	ror	edx,		1
	and	eax,		edi
	or	ebp,		eax
	mov	eax,		ebx
	rol	eax,		5
	add	ebp,		eax
	mov	eax,		[60+esp]
	add	ecx,		ebp
	mov	ebp,		[4+esp]
	xor	eax,		ebp
	mov	ebp,		[28+esp]
	xor	eax,		ebp
	mov	ebp,		[48+esp]
	ror	edx,		1
	xor	eax,		ebp
	rol	eax,		1
	mov	ebp,		ebx
	mov	[60+esp],	eax
	or	ebp,		edx
	lea	eax,		[2400959708+esi*1+eax]
	mov	esi,		ebx
	and	ebp,		edi
	and	esi,		edx
	or	ebp,		esi
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	ebp,		esi
	ror	ebx,		1
	add	eax,		ebp
	; 40_59 47
	; 40_59 48
	mov	esi,		[esp]
	mov	ebp,		[8+esp]
	xor	esi,		ebp
	mov	ebp,		[32+esp]
	xor	esi,		ebp
	mov	ebp,		[52+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	or	ebp,		ebx
	mov	[esp],		esi
	and	ebp,		edx
	lea	esi,		[2400959708+edi*1+esi]
	mov	edi,		ecx
	ror	ecx,		1
	and	edi,		ebx
	or	ebp,		edi
	mov	edi,		eax
	rol	edi,		5
	add	ebp,		edi
	mov	edi,		[4+esp]
	add	esi,		ebp
	mov	ebp,		[12+esp]
	xor	edi,		ebp
	mov	ebp,		[36+esp]
	xor	edi,		ebp
	mov	ebp,		[56+esp]
	ror	ecx,		1
	xor	edi,		ebp
	rol	edi,		1
	mov	ebp,		eax
	mov	[4+esp],	edi
	or	ebp,		ecx
	lea	edi,		[2400959708+edx*1+edi]
	mov	edx,		eax
	and	ebp,		ebx
	and	edx,		ecx
	or	ebp,		edx
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	ebp,		edx
	ror	eax,		1
	add	edi,		ebp
	; 40_59 49
	; 40_59 50
	mov	edx,		[8+esp]
	mov	ebp,		[16+esp]
	xor	edx,		ebp
	mov	ebp,		[40+esp]
	xor	edx,		ebp
	mov	ebp,		[60+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	or	ebp,		eax
	mov	[8+esp],	edx
	and	ebp,		ecx
	lea	edx,		[2400959708+ebx*1+edx]
	mov	ebx,		esi
	ror	esi,		1
	and	ebx,		eax
	or	ebp,		ebx
	mov	ebx,		edi
	rol	ebx,		5
	add	ebp,		ebx
	mov	ebx,		[12+esp]
	add	edx,		ebp
	mov	ebp,		[20+esp]
	xor	ebx,		ebp
	mov	ebp,		[44+esp]
	xor	ebx,		ebp
	mov	ebp,		[esp]
	ror	esi,		1
	xor	ebx,		ebp
	rol	ebx,		1
	mov	ebp,		edi
	mov	[12+esp],	ebx
	or	ebp,		esi
	lea	ebx,		[2400959708+ecx*1+ebx]
	mov	ecx,		edi
	and	ebp,		eax
	and	ecx,		esi
	or	ebp,		ecx
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ebp,		ecx
	ror	edi,		1
	add	ebx,		ebp
	; 40_59 51
	; 40_59 52
	mov	ecx,		[16+esp]
	mov	ebp,		[24+esp]
	xor	ecx,		ebp
	mov	ebp,		[48+esp]
	xor	ecx,		ebp
	mov	ebp,		[4+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	or	ebp,		edi
	mov	[16+esp],	ecx
	and	ebp,		esi
	lea	ecx,		[2400959708+eax*1+ecx]
	mov	eax,		edx
	ror	edx,		1
	and	eax,		edi
	or	ebp,		eax
	mov	eax,		ebx
	rol	eax,		5
	add	ebp,		eax
	mov	eax,		[20+esp]
	add	ecx,		ebp
	mov	ebp,		[28+esp]
	xor	eax,		ebp
	mov	ebp,		[52+esp]
	xor	eax,		ebp
	mov	ebp,		[8+esp]
	ror	edx,		1
	xor	eax,		ebp
	rol	eax,		1
	mov	ebp,		ebx
	mov	[20+esp],	eax
	or	ebp,		edx
	lea	eax,		[2400959708+esi*1+eax]
	mov	esi,		ebx
	and	ebp,		edi
	and	esi,		edx
	or	ebp,		esi
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	ebp,		esi
	ror	ebx,		1
	add	eax,		ebp
	; 40_59 53
	; 40_59 54
	mov	esi,		[24+esp]
	mov	ebp,		[32+esp]
	xor	esi,		ebp
	mov	ebp,		[56+esp]
	xor	esi,		ebp
	mov	ebp,		[12+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	or	ebp,		ebx
	mov	[24+esp],	esi
	and	ebp,		edx
	lea	esi,		[2400959708+edi*1+esi]
	mov	edi,		ecx
	ror	ecx,		1
	and	edi,		ebx
	or	ebp,		edi
	mov	edi,		eax
	rol	edi,		5
	add	ebp,		edi
	mov	edi,		[28+esp]
	add	esi,		ebp
	mov	ebp,		[36+esp]
	xor	edi,		ebp
	mov	ebp,		[60+esp]
	xor	edi,		ebp
	mov	ebp,		[16+esp]
	ror	ecx,		1
	xor	edi,		ebp
	rol	edi,		1
	mov	ebp,		eax
	mov	[28+esp],	edi
	or	ebp,		ecx
	lea	edi,		[2400959708+edx*1+edi]
	mov	edx,		eax
	and	ebp,		ebx
	and	edx,		ecx
	or	ebp,		edx
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	ebp,		edx
	ror	eax,		1
	add	edi,		ebp
	; 40_59 55
	; 40_59 56
	mov	edx,		[32+esp]
	mov	ebp,		[40+esp]
	xor	edx,		ebp
	mov	ebp,		[esp]
	xor	edx,		ebp
	mov	ebp,		[20+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	or	ebp,		eax
	mov	[32+esp],	edx
	and	ebp,		ecx
	lea	edx,		[2400959708+ebx*1+edx]
	mov	ebx,		esi
	ror	esi,		1
	and	ebx,		eax
	or	ebp,		ebx
	mov	ebx,		edi
	rol	ebx,		5
	add	ebp,		ebx
	mov	ebx,		[36+esp]
	add	edx,		ebp
	mov	ebp,		[44+esp]
	xor	ebx,		ebp
	mov	ebp,		[4+esp]
	xor	ebx,		ebp
	mov	ebp,		[24+esp]
	ror	esi,		1
	xor	ebx,		ebp
	rol	ebx,		1
	mov	ebp,		edi
	mov	[36+esp],	ebx
	or	ebp,		esi
	lea	ebx,		[2400959708+ecx*1+ebx]
	mov	ecx,		edi
	and	ebp,		eax
	and	ecx,		esi
	or	ebp,		ecx
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ebp,		ecx
	ror	edi,		1
	add	ebx,		ebp
	; 40_59 57
	; 40_59 58
	mov	ecx,		[40+esp]
	mov	ebp,		[48+esp]
	xor	ecx,		ebp
	mov	ebp,		[8+esp]
	xor	ecx,		ebp
	mov	ebp,		[28+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	or	ebp,		edi
	mov	[40+esp],	ecx
	and	ebp,		esi
	lea	ecx,		[2400959708+eax*1+ecx]
	mov	eax,		edx
	ror	edx,		1
	and	eax,		edi
	or	ebp,		eax
	mov	eax,		ebx
	rol	eax,		5
	add	ebp,		eax
	mov	eax,		[44+esp]
	add	ecx,		ebp
	mov	ebp,		[52+esp]
	xor	eax,		ebp
	mov	ebp,		[12+esp]
	xor	eax,		ebp
	mov	ebp,		[32+esp]
	ror	edx,		1
	xor	eax,		ebp
	rol	eax,		1
	mov	ebp,		ebx
	mov	[44+esp],	eax
	or	ebp,		edx
	lea	eax,		[2400959708+esi*1+eax]
	mov	esi,		ebx
	and	ebp,		edi
	and	esi,		edx
	or	ebp,		esi
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	ebp,		esi
	ror	ebx,		1
	add	eax,		ebp
	; 40_59 59
	; 20_39 60
	mov	esi,		[48+esp]
	mov	ebp,		[56+esp]
	xor	esi,		ebp
	mov	ebp,		[16+esp]
	xor	esi,		ebp
	mov	ebp,		[36+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	xor	ebp,		ebx
	mov	[48+esp],	esi
	xor	ebp,		edx
	lea	esi,		[3395469782+edi*1+esi]
	mov	edi,		eax
	rol	edi,		5
	ror	ecx,		1
	add	edi,		ebp
	ror	ecx,		1
	add	esi,		edi
	; 20_39 61
	mov	edi,		[52+esp]
	mov	ebp,		[60+esp]
	xor	edi,		ebp
	mov	ebp,		[20+esp]
	xor	edi,		ebp
	mov	ebp,		[40+esp]
	xor	edi,		ebp
	mov	ebp,		eax
	rol	edi,		1
	xor	ebp,		ecx
	mov	[52+esp],	edi
	xor	ebp,		ebx
	lea	edi,		[3395469782+edx*1+edi]
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	edx,		ebp
	ror	eax,		1
	add	edi,		edx
	; 20_39 62
	mov	edx,		[56+esp]
	mov	ebp,		[esp]
	xor	edx,		ebp
	mov	ebp,		[24+esp]
	xor	edx,		ebp
	mov	ebp,		[44+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	xor	ebp,		eax
	mov	[56+esp],	edx
	xor	ebp,		ecx
	lea	edx,		[3395469782+ebx*1+edx]
	mov	ebx,		edi
	rol	ebx,		5
	ror	esi,		1
	add	ebx,		ebp
	ror	esi,		1
	add	edx,		ebx
	; 20_39 63
	mov	ebx,		[60+esp]
	mov	ebp,		[4+esp]
	xor	ebx,		ebp
	mov	ebp,		[28+esp]
	xor	ebx,		ebp
	mov	ebp,		[48+esp]
	xor	ebx,		ebp
	mov	ebp,		edi
	rol	ebx,		1
	xor	ebp,		esi
	mov	[60+esp],	ebx
	xor	ebp,		eax
	lea	ebx,		[3395469782+ecx*1+ebx]
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ecx,		ebp
	ror	edi,		1
	add	ebx,		ecx
	; 20_39 64
	mov	ecx,		[esp]
	mov	ebp,		[8+esp]
	xor	ecx,		ebp
	mov	ebp,		[32+esp]
	xor	ecx,		ebp
	mov	ebp,		[52+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	xor	ebp,		edi
	mov	[esp],		ecx
	xor	ebp,		esi
	lea	ecx,		[3395469782+eax*1+ecx]
	mov	eax,		ebx
	rol	eax,		5
	ror	edx,		1
	add	eax,		ebp
	ror	edx,		1
	add	ecx,		eax
	; 20_39 65
	mov	eax,		[4+esp]
	mov	ebp,		[12+esp]
	xor	eax,		ebp
	mov	ebp,		[36+esp]
	xor	eax,		ebp
	mov	ebp,		[56+esp]
	xor	eax,		ebp
	mov	ebp,		ebx
	rol	eax,		1
	xor	ebp,		edx
	mov	[4+esp],	eax
	xor	ebp,		edi
	lea	eax,		[3395469782+esi*1+eax]
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	esi,		ebp
	ror	ebx,		1
	add	eax,		esi
	; 20_39 66
	mov	esi,		[8+esp]
	mov	ebp,		[16+esp]
	xor	esi,		ebp
	mov	ebp,		[40+esp]
	xor	esi,		ebp
	mov	ebp,		[60+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	xor	ebp,		ebx
	mov	[8+esp],	esi
	xor	ebp,		edx
	lea	esi,		[3395469782+edi*1+esi]
	mov	edi,		eax
	rol	edi,		5
	ror	ecx,		1
	add	edi,		ebp
	ror	ecx,		1
	add	esi,		edi
	; 20_39 67
	mov	edi,		[12+esp]
	mov	ebp,		[20+esp]
	xor	edi,		ebp
	mov	ebp,		[44+esp]
	xor	edi,		ebp
	mov	ebp,		[esp]
	xor	edi,		ebp
	mov	ebp,		eax
	rol	edi,		1
	xor	ebp,		ecx
	mov	[12+esp],	edi
	xor	ebp,		ebx
	lea	edi,		[3395469782+edx*1+edi]
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	edx,		ebp
	ror	eax,		1
	add	edi,		edx
	; 20_39 68
	mov	edx,		[16+esp]
	mov	ebp,		[24+esp]
	xor	edx,		ebp
	mov	ebp,		[48+esp]
	xor	edx,		ebp
	mov	ebp,		[4+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	xor	ebp,		eax
	mov	[16+esp],	edx
	xor	ebp,		ecx
	lea	edx,		[3395469782+ebx*1+edx]
	mov	ebx,		edi
	rol	ebx,		5
	ror	esi,		1
	add	ebx,		ebp
	ror	esi,		1
	add	edx,		ebx
	; 20_39 69
	mov	ebx,		[20+esp]
	mov	ebp,		[28+esp]
	xor	ebx,		ebp
	mov	ebp,		[52+esp]
	xor	ebx,		ebp
	mov	ebp,		[8+esp]
	xor	ebx,		ebp
	mov	ebp,		edi
	rol	ebx,		1
	xor	ebp,		esi
	mov	[20+esp],	ebx
	xor	ebp,		eax
	lea	ebx,		[3395469782+ecx*1+ebx]
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ecx,		ebp
	ror	edi,		1
	add	ebx,		ecx
	; 20_39 70
	mov	ecx,		[24+esp]
	mov	ebp,		[32+esp]
	xor	ecx,		ebp
	mov	ebp,		[56+esp]
	xor	ecx,		ebp
	mov	ebp,		[12+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	xor	ebp,		edi
	mov	[24+esp],	ecx
	xor	ebp,		esi
	lea	ecx,		[3395469782+eax*1+ecx]
	mov	eax,		ebx
	rol	eax,		5
	ror	edx,		1
	add	eax,		ebp
	ror	edx,		1
	add	ecx,		eax
	; 20_39 71
	mov	eax,		[28+esp]
	mov	ebp,		[36+esp]
	xor	eax,		ebp
	mov	ebp,		[60+esp]
	xor	eax,		ebp
	mov	ebp,		[16+esp]
	xor	eax,		ebp
	mov	ebp,		ebx
	rol	eax,		1
	xor	ebp,		edx
	mov	[28+esp],	eax
	xor	ebp,		edi
	lea	eax,		[3395469782+esi*1+eax]
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	esi,		ebp
	ror	ebx,		1
	add	eax,		esi
	; 20_39 72
	mov	esi,		[32+esp]
	mov	ebp,		[40+esp]
	xor	esi,		ebp
	mov	ebp,		[esp]
	xor	esi,		ebp
	mov	ebp,		[20+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	xor	ebp,		ebx
	mov	[32+esp],	esi
	xor	ebp,		edx
	lea	esi,		[3395469782+edi*1+esi]
	mov	edi,		eax
	rol	edi,		5
	ror	ecx,		1
	add	edi,		ebp
	ror	ecx,		1
	add	esi,		edi
	; 20_39 73
	mov	edi,		[36+esp]
	mov	ebp,		[44+esp]
	xor	edi,		ebp
	mov	ebp,		[4+esp]
	xor	edi,		ebp
	mov	ebp,		[24+esp]
	xor	edi,		ebp
	mov	ebp,		eax
	rol	edi,		1
	xor	ebp,		ecx
	mov	[36+esp],	edi
	xor	ebp,		ebx
	lea	edi,		[3395469782+edx*1+edi]
	mov	edx,		esi
	rol	edx,		5
	ror	eax,		1
	add	edx,		ebp
	ror	eax,		1
	add	edi,		edx
	; 20_39 74
	mov	edx,		[40+esp]
	mov	ebp,		[48+esp]
	xor	edx,		ebp
	mov	ebp,		[8+esp]
	xor	edx,		ebp
	mov	ebp,		[28+esp]
	xor	edx,		ebp
	mov	ebp,		esi
	rol	edx,		1
	xor	ebp,		eax
	mov	[40+esp],	edx
	xor	ebp,		ecx
	lea	edx,		[3395469782+ebx*1+edx]
	mov	ebx,		edi
	rol	ebx,		5
	ror	esi,		1
	add	ebx,		ebp
	ror	esi,		1
	add	edx,		ebx
	; 20_39 75
	mov	ebx,		[44+esp]
	mov	ebp,		[52+esp]
	xor	ebx,		ebp
	mov	ebp,		[12+esp]
	xor	ebx,		ebp
	mov	ebp,		[32+esp]
	xor	ebx,		ebp
	mov	ebp,		edi
	rol	ebx,		1
	xor	ebp,		esi
	mov	[44+esp],	ebx
	xor	ebp,		eax
	lea	ebx,		[3395469782+ecx*1+ebx]
	mov	ecx,		edx
	rol	ecx,		5
	ror	edi,		1
	add	ecx,		ebp
	ror	edi,		1
	add	ebx,		ecx
	; 20_39 76
	mov	ecx,		[48+esp]
	mov	ebp,		[56+esp]
	xor	ecx,		ebp
	mov	ebp,		[16+esp]
	xor	ecx,		ebp
	mov	ebp,		[36+esp]
	xor	ecx,		ebp
	mov	ebp,		edx
	rol	ecx,		1
	xor	ebp,		edi
	mov	[48+esp],	ecx
	xor	ebp,		esi
	lea	ecx,		[3395469782+eax*1+ecx]
	mov	eax,		ebx
	rol	eax,		5
	ror	edx,		1
	add	eax,		ebp
	ror	edx,		1
	add	ecx,		eax
	; 20_39 77
	mov	eax,		[52+esp]
	mov	ebp,		[60+esp]
	xor	eax,		ebp
	mov	ebp,		[20+esp]
	xor	eax,		ebp
	mov	ebp,		[40+esp]
	xor	eax,		ebp
	mov	ebp,		ebx
	rol	eax,		1
	xor	ebp,		edx
	mov	[52+esp],	eax
	xor	ebp,		edi
	lea	eax,		[3395469782+esi*1+eax]
	mov	esi,		ecx
	rol	esi,		5
	ror	ebx,		1
	add	esi,		ebp
	ror	ebx,		1
	add	eax,		esi
	; 20_39 78
	mov	esi,		[56+esp]
	mov	ebp,		[esp]
	xor	esi,		ebp
	mov	ebp,		[24+esp]
	xor	esi,		ebp
	mov	ebp,		[44+esp]
	xor	esi,		ebp
	mov	ebp,		ecx
	rol	esi,		1
	xor	ebp,		ebx
	mov	[56+esp],	esi
	xor	ebp,		edx
	lea	esi,		[3395469782+edi*1+esi]
	mov	edi,		eax
	rol	edi,		5
	ror	ecx,		1
	add	edi,		ebp
	ror	ecx,		1
	add	esi,		edi
	; 20_39 79
	mov	edi,		[60+esp]
	mov	ebp,		[4+esp]
	xor	edi,		ebp
	mov	ebp,		[28+esp]
	xor	edi,		ebp
	mov	ebp,		[48+esp]
	xor	edi,		ebp
	mov	ebp,		eax
	rol	edi,		1
	xor	ebp,		ecx
	mov	[60+esp],	edi
	xor	ebp,		ebx
	lea	edi,		[3395469782+edx*1+edi]
	mov	edx,		esi
	rol	edx,		5
	add	edx,		ebp
	mov	ebp,		[128+esp]
	ror	eax,		1
	add	edi,		edx
	ror	eax,		1
	; End processing
	; 
	mov	edx,		[12+ebp]
	add	edx,		ecx
	mov	ecx,		[4+ebp]
	add	ecx,		esi
	mov	esi,		eax
	mov	eax,		[ebp]
	mov	[12+ebp],	edx
	add	eax,		edi
	mov	edi,		[16+ebp]
	add	edi,		ebx
	mov	ebx,		[8+ebp]
	add	ebx,		esi
	mov	[ebp],		eax
	mov	esi,		[132+esp]
	mov	[8+ebp],	ebx
	add	esi,		64
	mov	eax,		[68+esp]
	mov	[16+ebp],	edi
	cmp	esi,		eax
	mov	[4+ebp],	ecx
	jl NEAR	L000start
	add	esp,		108
	pop	edi
	pop	ebx
	pop	ebp
	pop	esi
	ret
global	_sha1_block_asm_host_order
_sha1_block_asm_host_order:
	mov	ecx,		[12+esp]
	push	esi
	shl	ecx,		6
	mov	esi,		[12+esp]
	push	ebp
	add	ecx,		esi
	push	ebx
	mov	ebp,		[16+esp]
	push	edi
	mov	edx,		[12+ebp]
	sub	esp,		108
	mov	edi,		[16+ebp]
	mov	ebx,		[8+ebp]
	mov	[68+esp],	ecx
	; First we need to setup the X array
	mov	eax,		[esi]
	mov	ecx,		[4+esi]
	mov	[esp],		eax
	mov	[4+esp],	ecx
	mov	eax,		[8+esi]
	mov	ecx,		[12+esi]
	mov	[8+esp],	eax
	mov	[12+esp],	ecx
	mov	eax,		[16+esi]
	mov	ecx,		[20+esi]
	mov	[16+esp],	eax
	mov	[20+esp],	ecx
	mov	eax,		[24+esi]
	mov	ecx,		[28+esi]
	mov	[24+esp],	eax
	mov	[28+esp],	ecx
	mov	eax,		[32+esi]
	mov	ecx,		[36+esi]
	mov	[32+esp],	eax
	mov	[36+esp],	ecx
	mov	eax,		[40+esi]
	mov	ecx,		[44+esi]
	mov	[40+esp],	eax
	mov	[44+esp],	ecx
	mov	eax,		[48+esi]
	mov	ecx,		[52+esi]
	mov	[48+esp],	eax
	mov	[52+esp],	ecx
	mov	eax,		[56+esi]
	mov	ecx,		[60+esi]
	mov	[56+esp],	eax
	mov	[60+esp],	ecx
	jmp	L001shortcut
