	.file	1 "rmd160_test.c"
	.set	nobopt
	.text
	.align	2
	.globl	saus
	.ent	saus
saus:
	.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0
	.mask	0x00000000,0
	.fmask	0x00000000,0
	li	$2,-2147483648			# 0xffffffff80000000
	sll	$4,$4,24
	sra	$4,$4,24
	ori	$5,$2,0x4
	ori	$3,$2,0x8
$L2:
	lbu	$2,0($3)
	andi	$2,$2,0x2
	bne	$2,$0,$L2
	sb	$4,0($5)
	j	$31
	.end	saus
	.align	2
	.globl	sputs
	.ent	sputs
sputs:
	.frame	$sp,32,$31		# vars= 0, regs= 3/0, args= 16, gp= 0
	.mask	0x80030000,-8
	.fmask	0x00000000,0
	addiu	$sp,$sp,-32
	sw	$17,20($sp)
	sw	$16,16($sp)
	sw	$31,24($sp)
	move	$16,$4
	lb	$4,0($4)
	.set	noreorder
	.set	nomacro
	j	$L11
	move	$17,$16
	.set	macro
	.set	reorder

$L12:
	.set	noreorder
	.set	nomacro
	jal	saus
	addiu	$16,$16,1
	.set	macro
	.set	reorder

	lb	$4,0($16)
$L11:
	.set	noreorder
	.set	nomacro
	bne	$4,$0,$L12
	subu	$2,$16,$17
	.set	macro
	.set	reorder

	lw	$31,24($sp)
	lw	$17,20($sp)
	lw	$16,16($sp)
	.set	noreorder
	.set	nomacro
	j	$31
	addiu	$sp,$sp,32
	.set	macro
	.set	reorder

	.end	sputs
	.align	2
	.globl	print_byte
	.ent	print_byte
print_byte:
	.frame	$sp,32,$31		# vars= 0, regs= 3/0, args= 16, gp= 0
	.mask	0x80030000,-8
	.fmask	0x00000000,0
	addiu	$sp,$sp,-32
	sw	$16,16($sp)
	sll	$16,$4,24
	sw	$17,20($sp)
	sw	$31,24($sp)
	sra	$16,$16,24
	li	$17,1			# 0x1
	sra	$2,$16,4
$L22:
	andi	$5,$2,0xf
	sll	$2,$16,4
	sll	$16,$2,24
	sltu	$3,$5,10
	addiu	$17,$17,-1
	sra	$16,$16,24
	.set	noreorder
	.set	nomacro
	bne	$3,$0,$L18
	addiu	$4,$5,48
	.set	macro
	.set	reorder

	addiu	$4,$5,55
$L18:
	jal	saus
	.set	noreorder
	.set	nomacro
	bgez	$17,$L22
	sra	$2,$16,4
	.set	macro
	.set	reorder

	lw	$31,24($sp)
	lw	$17,20($sp)
	lw	$16,16($sp)
	.set	noreorder
	.set	nomacro
	j	$31
	addiu	$sp,$sp,32
	.set	macro
	.set	reorder

	.end	print_byte
	.align	2
	.globl	print_word
	.ent	print_word
print_word:
	.frame	$sp,32,$31		# vars= 0, regs= 3/0, args= 16, gp= 0
	.mask	0x80030000,-8
	.fmask	0x00000000,0
	addiu	$sp,$sp,-32
	sw	$17,20($sp)
	sw	$16,16($sp)
	sw	$31,24($sp)
	move	$16,$4
	li	$17,3			# 0x3
$L27:
	sra	$4,$16,24
	.set	noreorder
	.set	nomacro
	jal	print_byte
	addiu	$17,$17,-1
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	bgez	$17,$L27
	sll	$16,$16,8
	.set	macro
	.set	reorder

	lw	$31,24($sp)
	lw	$17,20($sp)
	lw	$16,16($sp)
	.set	noreorder
	.set	nomacro
	j	$31
	addiu	$sp,$sp,32
	.set	macro
	.set	reorder

	.end	print_word

	.lcomm	hashcode.0,20
	.align	2
	.globl	RMD
	.ent	RMD
RMD:
	.frame	$sp,128,$31		# vars= 88, regs= 6/0, args= 16, gp= 0
	.mask	0x801f0000,-4
	.fmask	0x00000000,0
	addiu	$sp,$sp,-128
	sw	$16,104($sp)
	move	$16,$4
	addiu	$4,$sp,16
	sw	$31,124($sp)
	sw	$20,120($sp)
	sw	$18,112($sp)
	sw	$17,108($sp)
	.set	noreorder
	.set	nomacro
	jal	MDinit
	sw	$19,116($sp)
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	strlen
	move	$4,$16
	.set	macro
	.set	reorder

	move	$18,$2
	sltu	$2,$2,64
	move	$17,$18
	.set	noreorder
	.set	nomacro
	bne	$2,$0,$L44
	addiu	$20,$sp,16
	.set	macro
	.set	reorder

	addiu	$19,$sp,40
	addiu	$5,$20,24
$L50:
	li	$11,15			# 0xf
$L37:
	lbu	$2,3($16)
	lbu	$3,2($16)
	lbu	$4,1($16)
	sll	$3,$3,16
	sll	$2,$2,24
	or	$2,$2,$3
	sll	$4,$4,8
	lbu	$3,0($16)
	or	$2,$2,$4
	or	$2,$2,$3
	addiu	$11,$11,-1
	sw	$2,0($5)
	addiu	$16,$16,4
	.set	noreorder
	.set	nomacro
	bgez	$11,$L37
	addiu	$5,$5,4
	.set	macro
	.set	reorder

	addiu	$17,$17,-64
	addiu	$4,$sp,16
	.set	noreorder
	.set	nomacro
	jal	compress
	move	$5,$19
	.set	macro
	.set	reorder

	sltu	$2,$17,64
	.set	noreorder
	.set	nomacro
	beq	$2,$0,$L50
	addiu	$5,$20,24
	.set	macro
	.set	reorder

$L44:
	move	$5,$16
	move	$6,$18
	addiu	$4,$sp,16
	.set	noreorder
	.set	nomacro
	jal	MDfinish
	move	$7,$0
	.set	macro
	.set	reorder

	move	$11,$0
	la	$15,hashcode.0
	la	$13,hashcode.0+1
	la	$14,hashcode.0+2
	la	$12,hashcode.0+3
$L42:
	srl	$2,$11,2
	sll	$2,$2,2
	addu	$2,$2,$20
	lw	$3,0($2)
	addu	$7,$11,$15
	addu	$8,$11,$13
	addu	$9,$11,$14
	addu	$10,$11,$12
	addiu	$11,$11,4
	srl	$6,$3,24
	srl	$2,$3,8
	srl	$4,$3,16
	sltu	$5,$11,20
	sb	$3,0($7)
	sb	$2,0($8)
	sb	$4,0($9)
	.set	noreorder
	.set	nomacro
	bne	$5,$0,$L42
	sb	$6,0($10)
	.set	macro
	.set	reorder

	lw	$31,124($sp)
	lw	$20,120($sp)
	lw	$19,116($sp)
	lw	$18,112($sp)
	lw	$17,108($sp)
	lw	$16,104($sp)
	la	$2,hashcode.0
	.set	noreorder
	.set	nomacro
	j	$31
	addiu	$sp,$sp,128
	.set	macro
	.set	reorder

	.end	RMD
	.section	.rodata.str1.4,"aMS",@progbits,1
	.align	2
$LC0:
	.ascii	"\r\n\000"
	.align	2
$LC1:
	.ascii	"* message: \000"
	.align	2
$LC2:
	.ascii	"  hashcode: \000"
	.text
	.align	2
	.globl	RMDstring
	.ent	RMDstring
RMDstring:
	.frame	$sp,40,$31		# vars= 8, regs= 3/0, args= 16, gp= 0
	.mask	0x80030000,-8
	.fmask	0x00000000,0
	lbu	$3,$LC0+2
	lhu	$2,$LC0
	addiu	$sp,$sp,-40
	sw	$31,32($sp)
	sb	$3,18($sp)
	sw	$17,28($sp)
	sw	$16,24($sp)
	sh	$2,16($sp)
	.set	noreorder
	.set	nomacro
	jal	RMD
	move	$16,$5
	.set	macro
	.set	reorder

	addiu	$4,$sp,16
	.set	noreorder
	.set	nomacro
	jal	sputs
	move	$17,$2
	.set	macro
	.set	reorder

	la	$4,$LC1
	jal	sputs
	.set	noreorder
	.set	nomacro
	jal	sputs
	move	$4,$16
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	sputs
	addiu	$4,$sp,16
	.set	macro
	.set	reorder

	la	$4,$LC2
	.set	noreorder
	.set	nomacro
	jal	sputs
	move	$16,$0
	.set	macro
	.set	reorder

	addu	$2,$17,$16
$L58:
	lb	$4,0($2)
	.set	noreorder
	.set	nomacro
	jal	print_byte
	addiu	$16,$16,1
	.set	macro
	.set	reorder

	sltu	$2,$16,20
	.set	noreorder
	.set	nomacro
	bne	$2,$0,$L58
	addu	$2,$17,$16
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	sputs
	addiu	$4,$sp,16
	.set	macro
	.set	reorder

	lw	$31,32($sp)
	lw	$17,28($sp)
	lw	$16,24($sp)
	.set	noreorder
	.set	nomacro
	j	$31
	addiu	$sp,$sp,40
	.set	macro
	.set	reorder

	.end	RMDstring
	.rdata
	.align	2
$LC3:
	.byte	-1
	.byte	35
	.byte	-100
	.byte	-42
	.byte	89
	.byte	-118
	.byte	121
	.byte	46
	.byte	-89
	.byte	-85
	.byte	108
	.byte	-8
	.byte	117
	.byte	-74
	.byte	53
	.byte	94
	.byte	93
	.byte	-128
	.byte	106
	.byte	54
	.section	.rodata.str1.4
	.align	2
$LC4:
	.ascii	"MIPS R3000 CPU\000"
	.align	2
$LC5:
	.ascii	"Failed\r\n\000"
	.text
	.align	2
	.globl	main
	.ent	main
main:
	.frame	$sp,88,$31		# vars= 48, regs= 5/0, args= 16, gp= 0
	.mask	0x800f0000,-8
	.fmask	0x00000000,0
	lwl	$2,$LC3+3
	lwl	$3,$LC3+7
	lwr	$2,$LC3
	lwr	$3,$LC3+4
	lwl	$4,$LC3+11
	lwl	$5,$LC3+15
	lwl	$6,$LC3+19
	addiu	$sp,$sp,-88
	lwr	$4,$LC3+8
	lwr	$5,$LC3+12
	lwr	$6,$LC3+16
	sw	$2,16($sp)
	sw	$3,20($sp)
	lw	$2,$LC4
	lw	$3,$LC4+4
	sw	$19,76($sp)
	sw	$18,72($sp)
	sw	$17,68($sp)
	sw	$4,24($sp)
	sw	$5,28($sp)
	sw	$2,40($sp)
	sw	$31,80($sp)
	sw	$16,64($sp)
	sw	$6,32($sp)
	sw	$3,44($sp)
	lw	$2,$LC4+8
	lhu	$3,$LC4+12
	sw	$2,48($sp)
	lbu	$2,$LC4+14
	sh	$3,52($sp)
	sb	$2,54($sp)
	lbu	$3,$LC0+2
	lhu	$2,$LC0
	li	$4,-2147483648			# 0xffffffff80000000
	sh	$2,56($sp)
	sb	$3,58($sp)
	ori	$5,$4,0x9
	li	$2,53
	ori	$4,$4,0x8
	li	$3,85
	sb	$2,0($5)
	move	$18,$0
	sb	$3,0($4)
	addiu	$19,$sp,56
	addiu	$17,$sp,40
$L60:
	.set	noreorder
	.set	nomacro
	jal	print_word
	move	$4,$18
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	sputs
	move	$4,$19
	.set	macro
	.set	reorder

	addiu	$18,$18,1
	.set	noreorder
	.set	nomacro
	j	$L66
	li	$16,32249			# 0x7df9
	.set	macro
	.set	reorder

$L64:
	.set	noreorder
	.set	nomacro
	bltz	$16,$L70
	move	$4,$17
	.set	macro
	.set	reorder

$L66:
	.set	noreorder
	.set	nomacro
	jal	RMD
	move	$4,$17
	.set	macro
	.set	reorder

	move	$4,$2
	addiu	$5,$sp,16
	.set	noreorder
	.set	nomacro
	jal	memcmp
	li	$6,20			# 0x14
	.set	macro
	.set	reorder

	la	$4,$LC5
	.set	noreorder
	.set	nomacro
	beq	$2,$0,$L64
	addiu	$16,$16,-1
	.set	macro
	.set	reorder

	jal	sputs
	.set	noreorder
	.set	nomacro
	bgez	$16,$L66
	move	$4,$17
	.set	macro
	.set	reorder

$L70:
	.set	noreorder
	.set	nomacro
	jal	RMDstring
	move	$5,$17
	.set	macro
	.set	reorder

	j	$L60
	.end	main
