.file	"md5c.c"
gcc2_compiled.:
___gnu_compiled_c:
.data
	.type	 _PADDING,@object
	.size	 _PADDING,64
_PADDING:
	.byte 128
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
	.byte 0
.text
	.align 2
.globl _MD5Init
	.type	 _MD5Init,@function
_MD5Init:
	pushl %ebp
	movl %esp,%ebp
	movl 8(%ebp),%eax
	movl 8(%ebp),%edx
	movl $0,20(%edx)
	movl $0,16(%eax)
	movl 8(%ebp),%eax
	movl $1732584193,(%eax)
	movl 8(%ebp),%eax
	movl $-271733879,4(%eax)
	movl 8(%ebp),%eax
	movl $-1732584194,8(%eax)
	movl 8(%ebp),%eax
	movl $271733878,12(%eax)
L1:
	leave
	ret
Lfe1:
	.size	 _MD5Init,Lfe1-_MD5Init
	.align 2
.globl _MD5Update
	.type	 _MD5Update,@function
_MD5Update:
	pushl %ebp
	movl %esp,%ebp
	subl $12,%esp
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%eax
	movl 16(%eax),%edx
	shrl $3,%edx
	movl %edx,%esi
	andl $63,%esi
	movl %esi,-8(%ebp)
	movl 8(%ebp),%eax
	movl 8(%ebp),%edx
	movl 16(%ebp),%esi
	leal 0(,%esi,8),%ecx
	movl %ecx,%ebx
	addl 16(%edx),%ebx
	movl %ebx,%edx
	movl %edx,16(%eax)
	movl 16(%ebp),%esi
	leal 0(,%esi,8),%eax
	cmpl %eax,%edx
	jae L3
	movl 8(%ebp),%eax
	incl 20(%eax)
L3:
	movl 8(%ebp),%eax
	movl 8(%ebp),%edx
	movl 16(%ebp),%ecx
	shrl $29,%ecx
	movl 20(%edx),%esi
	addl %ecx,%esi
	movl %esi,20(%eax)
	movl $64,%esi
	subl -8(%ebp),%esi
	movl %esi,-12(%ebp)
	movl 16(%ebp),%eax
	cmpl %eax,-12(%ebp)
	ja L4
	movl -12(%ebp),%eax
	pushl %eax
	movl 12(%ebp),%eax
	pushl %eax
	movl -8(%ebp),%eax
	addl $24,%eax
	movl %eax,%edx
	addl 8(%ebp),%edx
	pushl %edx
	call _MD5_memcpy
	addl $12,%esp
	movl 8(%ebp),%eax
	addl $24,%eax
	pushl %eax
	movl 8(%ebp),%eax
	pushl %eax
	call _MD5Transform
	addl $8,%esp
	movl -12(%ebp),%eax
	movl %eax,-4(%ebp)
L5:
	movl -4(%ebp),%eax
	addl $63,%eax
	cmpl %eax,16(%ebp)
	ja L8
	jmp L6
	.align 2,0x90
L8:
	movl 12(%ebp),%eax
	addl -4(%ebp),%eax
	pushl %eax
	movl 8(%ebp),%eax
	pushl %eax
	call _MD5Transform
	addl $8,%esp
L7:
	addl $64,-4(%ebp)
	jmp L5
	.align 2,0x90
L6:
	movl $0,-8(%ebp)
	jmp L9
	.align 2,0x90
L4:
	movl $0,-4(%ebp)
L9:
	movl 16(%ebp),%eax
	subl -4(%ebp),%eax
	pushl %eax
	movl 12(%ebp),%eax
	addl -4(%ebp),%eax
	pushl %eax
	movl -8(%ebp),%eax
	addl $24,%eax
	movl %eax,%edx
	addl 8(%ebp),%edx
	pushl %edx
	call _MD5_memcpy
	addl $12,%esp
L2:
	leal -20(%ebp),%esp
	popl %ebx
	popl %esi
	leave
	ret
Lfe2:
	.size	 _MD5Update,Lfe2-_MD5Update
	.align 2
.globl _MD5Final
	.type	 _MD5Final,@function
_MD5Final:
	pushl %ebp
	movl %esp,%ebp
	subl $16,%esp
	pushl $8
	movl 12(%ebp),%eax
	addl $16,%eax
	pushl %eax
	leal -8(%ebp),%eax
	pushl %eax
	call _Encode
	addl $12,%esp
	movl 12(%ebp),%eax
	movl 16(%eax),%edx
	shrl $3,%edx
	movl %edx,%ecx
	andl $63,%ecx
	movl %ecx,-12(%ebp)
	cmpl $55,-12(%ebp)
	ja L11
	movl $56,%eax
	subl -12(%ebp),%eax
	jmp L12
	.align 2,0x90
L11:
	movl $120,%eax
	subl -12(%ebp),%eax
L12:
	movl %eax,-16(%ebp)
	movl -16(%ebp),%eax
	pushl %eax
	pushl $_PADDING
	movl 12(%ebp),%eax
	pushl %eax
	call _MD5Update
	addl $12,%esp
	pushl $8
	leal -8(%ebp),%eax
	pushl %eax
	movl 12(%ebp),%eax
	pushl %eax
	call _MD5Update
	addl $12,%esp
	pushl $16
	movl 12(%ebp),%eax
	pushl %eax
	movl 8(%ebp),%eax
	pushl %eax
	call _Encode
	addl $12,%esp
	pushl $88
	pushl $0
	movl 12(%ebp),%eax
	pushl %eax
	call _MD5_memset
	addl $12,%esp
L10:
	leave
	ret
Lfe3:
	.size	 _MD5Final,Lfe3-_MD5Final
	.align 2
	.type	 _MD5Transform,@function
_MD5Transform:
	pushl %ebp
	movl %esp,%ebp
	subl $80,%esp
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%eax
	movl (%eax),%edx
	movl %edx,-4(%ebp)
	movl 8(%ebp),%eax
	addl $4,%eax
	movl (%eax),%edx
	movl %edx,-8(%ebp)
	movl 8(%ebp),%eax
	addl $8,%eax
	movl (%eax),%edx
	movl %edx,-12(%ebp)
	movl 8(%ebp),%eax
	addl $12,%eax
	movl (%eax),%edx
	movl %edx,-16(%ebp)
	pushl $64
	movl 12(%ebp),%eax
	pushl %eax
	leal -80(%ebp),%eax
	pushl %eax
	call _Decode
	addl $12,%esp

	movl -4(%ebp),%eax        ! Changes for optimization - DONE 
	movl -8(%ebp),%ebx
	movl -12(%ebp),%ecx
	movl -16(%ebp),%edx

	movl %ecx,%esi

#1
		xorl %edx,%esi
		addl -80(%ebp),%eax 
		andl %ebx,%esi
		addl $-680876936,%eax
		xorl %edx,%esi

	addl %esi,%eax
	movl %ebx,%esi
	roll $7,%eax
	addl %ebx,%eax

#2
		xorl %ecx,%esi
		addl -76(%ebp),%edx
		andl %eax,%esi
		addl $-389564586,%edx
		xorl %ecx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $12,%edx
	addl %eax,%edx

#3
		xorl %ebx,%esi
		addl -72(%ebp),%ecx
		andl %edx,%esi
		addl $606105819,%ecx
		xorl %ebx,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $17,%ecx
	addl %edx,%ecx

#4
		xorl %eax,%esi
		addl -68(%ebp),%ebx
		andl %ecx,%esi
		addl $-1044525330,%ebx
		xorl %eax,%esi

	addl %esi,%ebx
	movl %ecx,%esi
	roll $22,%ebx
	addl %ecx,%ebx

#5
		xorl %edx,%esi
		addl -64(%ebp),%eax
		andl %ebx,%esi
		addl $-176418897,%eax
		xorl %edx,%esi

	addl %esi,%eax
	movl %ebx,%esi
	roll $7,%eax
	addl %ebx,%eax

#6
		xorl %ecx,%esi
		addl -60(%ebp),%edx
		andl %eax,%esi
		addl $1200080426,%edx
		xorl %ecx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $12,%edx
	addl %eax,%edx

#7
		xorl %ebx,%esi
		addl -56(%ebp),%ecx
		andl %edx,%esi
		addl $-1473231341,%ecx
		xorl %ebx,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $17,%ecx
	addl %edx,%ecx

#8
		xorl %eax,%esi
		addl -52(%ebp),%ebx
		andl %ecx,%esi
		addl $-45705983,%ebx
		xorl %eax,%esi

	addl %esi,%ebx
	movl %ecx,%esi
	roll $22,%ebx
	addl %ecx,%ebx

#9
		xorl %edx,%esi
		addl -48(%ebp),%eax
		andl %ebx,%esi
		addl $1770035416,%eax
		xorl %edx,%esi

	addl %esi, %eax
	movl %ebx,%esi
	roll $7,%eax
	addl %ebx,%eax

#10
		xorl %ecx,%esi
		addl -44(%ebp),%edx
		andl %eax,%esi
		addl $-1958414417,%edx
		xorl %ecx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $12,%edx
	addl %eax,%edx

#11
		xorl %ebx,%esi
		addl -40(%ebp),%ecx
		andl %edx,%esi
		addl $-42063,%ecx
		xorl %ebx,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $17,%ecx
	addl %edx,%ecx

#12
		xorl %eax,%esi
		addl -36(%ebp),%ebx
		andl %ecx,%esi
		addl $-1990404162,%ebx
		xorl %eax,%esi

	addl %esi,%ebx
	movl %ecx,%esi
	roll $22,%ebx
	addl %ecx,%ebx

#13
		xorl %edx,%esi
		addl -32(%ebp),%eax
		andl %ebx,%esi
		addl $1804603682,%eax
		xorl %edx,%esi

	addl %esi,%eax
	movl %ebx,%esi
	roll $7,%eax
	addl %ebx,%eax

#14
		xorl %ecx,%esi
		addl -28(%ebp),%edx
		andl %eax,%esi
		addl $-40341101,%edx
		xorl %ecx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $12,%edx
	addl %eax,%edx

#15
		xorl %ebx,%esi
		addl -24(%ebp),%ecx
		andl %edx,%esi
		addl $-1502002290,%ecx
		xorl %ebx,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $17,%ecx
	addl %edx,%ecx

#16
		xorl %eax,%esi
		addl -20(%ebp),%ebx
		andl %ecx,%esi
		addl $1236535329,%ebx
		xorl %eax,%esi

	addl %esi,%ebx	
	movl %ecx,%esi
	roll $22,%ebx
	addl %ecx,%ebx
	
#----------------Round 1 Finishes Here -----------

#1
		xorl %ebx,%esi
		addl -76(%ebp),%eax
		andl %edx,%esi
		addl $-165796510,%eax
		xorl %ecx,%esi

	addl %esi,%eax
	movl %ebx,%esi
	roll $5,%eax
	addl %ebx,%eax

#2
		xorl %eax,%esi
		addl -56(%ebp),%edx
		andl %ecx,%esi
		addl $-1069501632,%edx
		xorl %ebx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $9,%edx
	addl %eax,%edx

#3
		xorl %edx,%esi
		addl -36(%ebp),%ecx
		andl %ebx,%esi
		addl $643717713,%ecx
		xorl %eax,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $14,%ecx
	addl %edx,%ecx

#4
		xorl %ecx,%esi
		addl -80(%ebp),%ebx
		andl %eax,%esi
		addl $-373897302,%ebx
		xorl %edx,%esi

	addl %esi,%ebx
	movl %ecx,%esi
	roll $20,%ebx
	addl %ecx,%ebx

#5
		xorl %ebx,%esi
		addl -60(%ebp),%eax
		andl %edx,%esi
		addl $-701558691,%eax
		xorl %ecx,%esi

	addl %esi,%eax
	movl %ebx,%esi
	roll $5,%eax
	addl %ebx,%eax

#6
		xorl %eax,%esi
		addl -40(%ebp),%edx
		andl %ecx,%esi
		addl $38016083,%edx
		xorl %ebx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $9,%edx
	addl %eax,%edx

#7
		xorl %edx,%esi
		addl -20(%ebp),%ecx
		andl %ebx,%esi
		addl $-660478335,%ecx
		xorl %eax,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $14,%ecx
	addl %edx,%ecx

#8
		xorl %ecx,%esi
		addl -64(%ebp),%ebx
		andl %eax,%esi
		addl $-405537848,%ebx
		xorl %edx,%esi

	addl %esi,%ebx
	movl %ecx,%esi
	roll $20,%ebx
	addl %ecx,%ebx

#9
		xorl %ebx,%esi
		addl -44(%ebp),%eax
		andl %edx,%esi
		addl $568446438,%eax
		xorl %ecx,%esi

	addl %esi,%eax
	movl %ebx,%esi
	roll $5,%eax
	addl %ebx,%eax

#10
		xorl %eax,%esi
		addl -24(%ebp),%edx
		andl %ecx,%esi
		addl $-1019803690,%edx
		xorl %ebx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $9,%edx
	addl %eax,%edx

#11
		xorl %edx,%esi
		addl -68(%ebp),%ecx
		andl %ebx,%esi
		addl $-187363961,%ecx
		xorl %eax,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $14,%ecx
	addl %edx,%ecx

#12
		xorl %ecx,%esi
		addl -48(%ebp),%ebx
		andl %eax,%esi
		addl $1163531501,%ebx
		xorl %edx,%esi

	addl %esi,%ebx
	movl %ecx,%esi
	roll $20,%ebx
	addl %ecx,%ebx

#13
		xorl %ebx,%esi
		addl -28(%ebp),%eax
		andl %edx,%esi
		addl $-1444681467,%eax
		xorl %ecx,%esi

	addl %esi,%eax
	movl %ebx,%esi
	roll $5,%eax
	addl %ebx,%eax

#14
		xorl %eax,%esi
		addl -72(%ebp),%edx
		andl %ecx,%esi
		addl $-51403784,%edx
		xorl %ebx,%esi

	addl %esi,%edx
	movl %eax,%esi
	roll $9,%edx
	addl %eax,%edx

#15
		xorl %edx,%esi
		addl -52(%ebp),%ecx
		andl %ebx,%esi
		addl $1735328473,%ecx
		xorl %eax,%esi

	addl %esi,%ecx
	movl %edx,%esi
	roll $14,%ecx
	addl %edx,%ecx

#16
		xorl %ecx,%esi
		addl -32(%ebp),%ebx
		andl %eax,%esi
		addl $-1926607734,%ebx
		xorl %edx,%esi

	addl %esi,%ebx
	movl %ecx,%esi
	roll $20,%ebx
	addl %ecx,%ebx
		
#--------------Round 2 Finishes Here---------

#1
		xorl %ebx,%esi
		addl -60(%ebp),%eax	
		xorl %edx,%esi
		addl $-378558,%eax

	addl %esi,%eax
	movl %ebx,%esi
	roll $4,%eax
	addl %ebx,%eax

#2
		xorl %eax,%esi
		addl -48(%ebp),%edx
		xorl %ecx,%esi
		addl $-2022574463,%edx

	addl %esi,%edx
	movl %eax,%esi
	roll $11,%edx
	addl %eax,%edx

#3
		xorl %edx,%esi
		addl -36(%ebp),%ecx
		xorl %ebx,%esi
		addl $1839030562,%ecx

	addl %esi,%ecx
	movl %edx,%esi
	roll $16,%ecx
	addl %edx,%ecx
	
#4
		xorl %ecx,%esi
		addl -24(%ebp),%ebx
		xorl %eax,%esi
		addl $-35309556,%ebx

	addl %esi,%ebx
	movl %ecx,%esi
	roll $23,%ebx
	addl %ecx,%ebx
	
#5
		xorl %ebx,%esi
		addl -76(%ebp),%eax	
		xorl %edx,%esi
		addl $-1530992060,%eax

	addl %esi,%eax
	movl %ebx,%esi
	roll $4,%eax
	addl %ebx,%eax
	
#6
		xorl %eax,%esi
		addl -64(%ebp),%edx
		xorl %ecx,%esi
		addl $1272893353,%edx

	addl %esi,%edx
	movl %eax,%esi
	roll $11,%edx
	addl %eax,%edx
	
#7
		xorl %edx,%esi
		addl -52(%ebp),%ecx
		xorl %ebx,%esi
		addl $-155497632,%ecx

	addl %esi,%ecx
	movl %edx,%esi
	roll $16,%ecx
	addl %edx,%ecx
	
#8
		xorl %ecx,%esi
		addl -40(%ebp),%ebx
		xorl %eax,%esi
		addl $-1094730640,%ebx

	addl %esi,%ebx
	movl %ecx,%esi
	roll $23,%ebx
	addl %ecx,%ebx
	
#9
		xorl %ebx,%esi
		addl -28(%ebp),%eax	
		xorl %edx,%esi
		addl $681279174,%eax

	addl %esi,%eax
	movl %ebx,%esi
	roll $4,%eax
	addl %ebx,%eax
	
#10
		xorl %eax,%esi
		addl -80(%ebp),%edx
		xorl %ecx,%esi
		addl $-358537222,%edx

	addl %esi,%edx
	movl %eax,%esi
	roll $11,%edx
	addl %eax,%edx
	
#11
		xorl %edx,%esi
		addl -68(%ebp),%ecx
		xorl %ebx,%esi
		addl $-722521979,%ecx

	addl %esi,%ecx
	movl %edx,%esi
	roll $16,%ecx
	addl %edx,%ecx
	
#12
		xorl %ecx,%esi
		addl -56(%ebp),%ebx
		xorl %eax,%esi
		addl $76029189,%ebx

	addl %esi,%ebx
	movl %ecx,%esi
	roll $23,%ebx
	addl %ecx,%ebx
	
#13
		xorl %ebx,%esi
		addl -44(%ebp),%eax	
		xorl %edx,%esi
		addl $-640364487,%eax

	addl %esi,%eax
	movl %ebx,%esi
	roll $4,%eax
	addl %ebx,%eax
	
#14
		xorl %eax,%esi
		addl -32(%ebp),%edx
		xorl %ecx,%esi
		addl $-421815835,%edx

	addl %esi,%edx
	movl %eax,%esi
	roll $11,%edx
	addl %eax,%edx
	
#15	
		xorl %edx,%esi
		addl -20(%ebp),%ecx
		xorl %ebx,%esi
		addl $530742520,%ecx

	addl %esi,%ecx
	movl %edx,%esi
	roll $16,%ecx
	addl %edx,%ecx

#16
		xorl %ecx,%esi
		addl -72(%ebp),%ebx
		xorl %eax,%esi
		addl $-995338651,%ebx

	addl %esi,%ebx
	movl %edx,%esi
	roll $23,%ebx
	addl %ecx,%ebx

#------------- Round 3 Finishes Here-----------

#1
		notl %esi
		addl -80(%ebp),%eax
		orl %ebx,%esi
		addl $-198630844,%eax
		xorl %ecx,%esi
	
	addl %esi,%eax
	movl %ecx,%esi
	roll $6,%eax
	addl %ebx,%eax

#2
		notl %esi
		addl -52(%ebp),%edx
		orl %eax,%esi
		addl $1126891415,%edx
		xorl %ebx,%esi
	
	addl %esi,%edx
	movl %ebx,%esi
	roll $10,%edx
	addl %eax,%edx
	
#3
		notl %esi
		addl -24(%ebp),%ecx
		orl %edx,%esi
		addl $-1416354905,%ecx
		xorl %eax,%esi
	
	addl %esi,%ecx
	movl %eax,%esi
	roll $15,%ecx
	addl %edx,%ecx

#4
		notl %esi
		addl -60(%ebp),%ebx
		orl %ecx,%esi
		addl $-57434055,%ebx
		xorl %edx,%esi
	
	addl %esi,%ebx
	movl %edx,%esi
	roll $21,%ebx
	addl %ecx,%ebx
	
#5
		notl %esi
		addl -32(%ebp),%eax
		orl %ebx,%esi
		addl $1700485571,%eax
		xorl %ecx,%esi
	
	addl %esi,%eax
	movl %ecx,%esi
	roll $6,%eax
	addl %ebx,%eax

#6
		notl %esi
		addl -68(%ebp),%edx
		orl %eax,%esi
		addl $-1894986606,%edx
		xorl %ebx,%esi
	
	addl %esi,%edx
	movl %ebx,%esi
	roll $10,%edx
	addl %eax,%edx

#7
		notl %esi
		addl -40(%ebp),%ecx
		orl %edx,%esi
		addl $-1051523,%ecx
		xorl %eax,%esi
	
	addl %esi,%ecx
	movl %eax,%esi
	roll $15,%ecx
	addl %edx,%ecx

#8
		notl %esi
		addl -76(%ebp),%ebx
		orl %ecx,%esi
		addl $-2054922799,%ebx
		xorl %edx,%esi
	
	addl %esi,%ebx
	movl %edx,%esi
	roll $21,%ebx
	addl %ecx,%ebx

#9
		notl %esi
		addl -48(%ebp),%eax
		orl %ebx,%esi
		addl $1873313359,%eax
		xorl %ecx,%esi
	
	addl %esi,%eax
	movl %ecx,%esi
	roll $6,%eax
	addl %ebx,%eax

#10
		notl %esi
		addl -20(%ebp),%edx
		orl %eax,%esi
		addl $-30611744,%edx
		xorl %ebx,%esi
	
	addl %esi,%edx
	movl %ebx,%esi
	roll $10,%edx
	addl %eax,%edx

#11

		notl %esi
		addl -56(%ebp),%ecx
		orl %edx,%esi
		addl $-1560198380,%ecx
		xorl %eax,%esi
	
	addl %esi,%ecx
	movl %eax,%esi
	roll $15,%ecx
	addl %edx,%ecx

#12
		notl %esi
		addl -28(%ebp),%ebx
		orl %ecx,%esi
		addl $1309151649,%ebx
		xorl %edx,%esi
	
	addl %esi,%ebx
	movl %edx,%esi
	roll $21,%ebx
	addl %ecx,%ebx

#13
		notl %esi
		addl -64(%ebp),%eax
		orl %ebx,%esi
		addl $-145523070,%eax
		xorl %ecx,%esi
	
	addl %esi,%eax
	movl %ecx,%esi
	roll $6,%eax
	addl %ebx,%eax

#14
		notl %esi
		addl -36(%ebp),%edx
		orl %eax,%esi
		addl $-1120210379,%edx
		xorl %ebx,%esi
	
	addl %esi,%edx
	movl %ebx,%esi
	roll $10,%edx
	addl %eax,%edx

#15
		notl %esi
		addl -72(%ebp),%ecx
		orl %edx,%esi
		addl $718787259,%ecx
		xorl %eax,%esi
	
	addl %esi,%ecx
	movl %eax,%esi
	roll $15,%ecx
	addl %edx,%ecx

#16
		notl %esi
		addl -44(%ebp),%ebx
		orl %ecx,%esi
		addl $-343485551,%ebx
		xorl %edx,%esi
	
	addl %esi,%ebx
	movl %edx,%esi
	roll $21,%ebx
	addl %ecx,%ebx
	

		movl %eax,-4(%ebp)
		movl %ebx,-8(%ebp)
		movl %ecx,-12(%ebp)
		movl %edx,-16(%ebp)



#--------------Round 4 Finishes Here-------------


	movl 8(%ebp),%eax
	movl 8(%ebp),%edx
	movl (%edx),%esi
	addl -4(%ebp),%esi
	movl %esi,(%eax)
	movl 8(%ebp),%eax
	addl $4,%eax
	movl 8(%ebp),%edx
	addl $4,%edx
	movl (%edx),%esi
	addl -8(%ebp),%esi
	movl %esi,(%eax)
	movl 8(%ebp),%eax
	addl $8,%eax
	movl 8(%ebp),%edx
	addl $8,%edx
	movl (%edx),%esi
	addl -12(%ebp),%esi
	movl %esi,(%eax)
	movl 8(%ebp),%eax
	addl $12,%eax
	movl 8(%ebp),%edx
	addl $12,%edx
	movl (%edx),%esi
	addl -16(%ebp),%esi
	movl %esi,(%eax)
	pushl $64
	pushl $0
	leal -80(%ebp),%eax
	pushl %eax
	call _MD5_memset
	addl $12,%esp
L13:
	leal -88(%ebp),%esp
	popl %ebx
	popl %esi
	leave
	ret
Lfe4:
	.size	 _MD5Transform,Lfe4-_MD5Transform
	.align 2
	.type	 _Encode,@function
_Encode:
	pushl %ebp
	movl %esp,%ebp
	subl $8,%esp
	nop
	movl $0,-4(%ebp)
	movl $0,-8(%ebp)
L15:
	movl -8(%ebp),%eax
	cmpl %eax,16(%ebp)
	ja L18
	jmp L16
	.align 2,0x90
L18:
	movl 8(%ebp),%eax
	addl -8(%ebp),%eax
	movl -4(%ebp),%edx
	movl %edx,%ecx
	leal 0(,%ecx,4),%edx
	movl 12(%ebp),%ecx
	movb (%ecx,%edx),%dl
	movb %dl,(%eax)
	movl -8(%ebp),%edx
	addl 8(%ebp),%edx
	leal 1(%edx),%eax
	movl -4(%ebp),%edx
	movl %edx,%ecx
	leal 0(,%ecx,4),%edx
	movl 12(%ebp),%ecx
	movl (%ecx,%edx),%edx
	shrl $8,%edx
	movb %dl,(%eax)
	movl -8(%ebp),%edx
	addl 8(%ebp),%edx
	leal 2(%edx),%eax
	movl -4(%ebp),%edx
	movl %edx,%ecx
	leal 0(,%ecx,4),%edx
	movl 12(%ebp),%ecx
	movl (%ecx,%edx),%edx
	shrl $16,%edx
	movb %dl,(%eax)
	movl -8(%ebp),%edx
	addl 8(%ebp),%edx
	leal 3(%edx),%eax
	movl -4(%ebp),%edx
	movl %edx,%ecx
	leal 0(,%ecx,4),%edx
	movl 12(%ebp),%ecx
	movl (%ecx,%edx),%edx
	shrl $24,%edx
	movb %dl,(%eax)
L17:
	incl -4(%ebp)
	addl $4,-8(%ebp)
	jmp L15
	.align 2,0x90
L16:
L14:
	leave
	ret
Lfe5:
	.size	 _Encode,Lfe5-_Encode
	.align 2
	.type	 _Decode,@function
_Decode:
	pushl %ebp
	movl %esp,%ebp
	subl $8,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	nop
	movl $0,-4(%ebp)
	movl $0,-8(%ebp)
L20:
	movl -8(%ebp),%eax
	cmpl %eax,16(%ebp)
	ja L23
	jmp L21
	.align 2,0x90
L23:
	movl -4(%ebp),%eax
	movl %eax,%edx
	leal 0(,%edx,4),%eax
	movl 8(%ebp),%edx
	movl 12(%ebp),%ebx
	addl -8(%ebp),%ebx
	movzbl (%ebx),%ecx
	movl -8(%ebp),%ebx
	addl 12(%ebp),%ebx
	leal 1(%ebx),%esi
	movzbl (%esi),%ebx
	movl %ebx,%esi
	sall $8,%esi
	orl %esi,%ecx
	movl -8(%ebp),%ebx
	addl 12(%ebp),%ebx
	leal 2(%ebx),%esi
	movzbl (%esi),%ebx
	movl %ebx,%esi
	sall $16,%esi
	orl %esi,%ecx
	movl -8(%ebp),%ebx
	addl 12(%ebp),%ebx
	leal 3(%ebx),%esi
	movzbl (%esi),%ebx
	movl %ebx,%esi
	sall $24,%esi
	movl %ecx,%edi
	orl %esi,%edi
	movl %edi,(%edx,%eax)
L22:
	incl -4(%ebp)
	addl $4,-8(%ebp)
	jmp L20
	.align 2,0x90
L21:
L19:
	leal -20(%ebp),%esp
	popl %ebx
	popl %esi
	popl %edi
	leave
	ret
Lfe6:
	.size	 _Decode,Lfe6-_Decode
	.align 2
	.type	 _MD5_memcpy,@function
_MD5_memcpy:
	pushl %ebp
	movl %esp,%ebp
	movl 16(%ebp),%eax
	pushl %eax
	movl 12(%ebp),%eax
	pushl %eax
	movl 8(%ebp),%eax
	pushl %eax
	call _memcpy
	addl $12,%esp
L24:
	leave
	ret
Lfe7:
	.size	 _MD5_memcpy,Lfe7-_MD5_memcpy
	.align 2
	.type	 _MD5_memset,@function
_MD5_memset:
	pushl %ebp
	movl %esp,%ebp
	movl 16(%ebp),%eax
	pushl %eax
	movl 12(%ebp),%eax
	pushl %eax
	movl 8(%ebp),%eax
	pushl %eax
	call _memset
	addl $12,%esp
L25:
	leave
	ret
Lfe8:
	.size	 _MD5_memset,Lfe8-_MD5_memset