	.file	1 "fibonacci.c"
	.set	nobopt
	.text
	.align	2
	.globl	fibonacci
	.ent	fibonacci
fibonacci:
	.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0
	.mask	0x00000000,0
	.fmask	0x00000000,0
	li	$8,2			# 0x2
	slt	$2,$8,$7
	sw	$4,0($6)
	.set	noreorder
	.set	nomacro
	beq	$2,$0,$L7
	sw	$5,4($6)
	.set	macro
	.set	reorder

	addiu	$6,$6,8
$L5:
	lw	$2,-8($6)
	lw	$3,-4($6)
	addiu	$8,$8,1
	addu	$2,$2,$3
	slt	$4,$8,$7
	sw	$2,0($6)
	.set	noreorder
	.set	nomacro
	bne	$4,$0,$L5
	addiu	$6,$6,4
	.set	macro
	.set	reorder

$L7:
	.set	noreorder
	.set	nomacro
	j	$31
	move	$2,$8
	.set	macro
	.set	reorder

	.end	fibonacci
	.align	2
	.globl	test_func
	.ent	test_func
test_func:
	.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0
	.mask	0x00000000,0
	.fmask	0x00000000,0
	lbu	$2,7($4)
	lbu	$3,6($4)
	sll	$2,$2,8
	or	$2,$2,$3
	sll	$2,$2,16
	sra	$2,$2,16
	li	$3,-2147483648			# 0xffffffff80000000
	.set	noreorder
	.set	nomacro
	j	$31
	sw	$2,0($3)
	.set	macro
	.set	reorder

	.end	test_func
	.align	2
	.globl	sein
	.ent	sein
sein:
	.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0
	.mask	0x00000000,0
	.fmask	0x00000000,0
	li	$2,-2147483648			# 0xffffffff80000000
	ori	$4,$2,0x4
	ori	$3,$2,0x8
$L11:
	lbu	$2,0($3)
	andi	$2,$2,0x10
	beq	$2,$0,$L11
	lbu	$2,0($4)
	sll	$2,$2,24
	.set	noreorder
	.set	nomacro
	j	$31
	sra	$2,$2,24
	.set	macro
	.set	reorder

	.end	sein
	.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
$L14:
	lbu	$2,0($3)
	andi	$2,$2,0x2
	bne	$2,$0,$L14
	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	$L22
	move	$17,$16
	.set	macro
	.set	reorder

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

	lb	$4,0($16)
$L22:
	.set	noreorder
	.set	nomacro
	bne	$4,$0,$L23
	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_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,7			# 0x7
	srl	$3,$16,28
$L33:
	sltu	$2,$3,10
	addiu	$17,$17,-1
	sll	$16,$16,4
	.set	noreorder
	.set	nomacro
	bne	$2,$0,$L29
	addiu	$4,$3,48
	.set	macro
	.set	reorder

	addiu	$4,$3,55
$L29:
	jal	saus
	.set	noreorder
	.set	nomacro
	bgez	$17,$L33
	srl	$3,$16,28
	.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
	.section	.sdata,"aw",@progbits
	.align	2
$LC0:
	.word	305419896
	.word	1431677610
	.section	.rodata.str1.4,"aMS",@progbits,1
	.align	2
$LC2:
	.ascii	"MIPS R3000 CPU\r\n"
	.ascii	"Ready\r\n\000"
	.section	.sdata
	.align	2
$LC1:
	.byte	13
	.4byte	-10862655
	.byte	30
	.half	3847
	.text
	.align	2
	.globl	main
	.ent	main
main:
	.frame	$sp,536,$31		# vars= 480, regs= 10/0, args= 16, gp= 0
	.mask	0xc0ff0000,-4
	.fmask	0x00000000,0
	lw	$2,$LC0
	addiu	$sp,$sp,-536
	lw	$3,$LC0+4
	sw	$2,416($sp)
	lw	$2,$LC2
	lwl	$4,$LC1+3
	lwl	$5,$LC1+7
	sw	$3,420($sp)
	sw	$2,432($sp)
	lw	$3,$LC2+4
	lw	$2,$LC2+8
	lwr	$5,$LC1+4
	lwr	$4,$LC1
	sw	$3,436($sp)
	sw	$2,440($sp)
	lw	$3,$LC2+12
	lw	$2,$LC2+16
	sw	$31,532($sp)
	sw	$5,428($sp)
	sw	$23,524($sp)
	sw	$22,520($sp)
	sw	$21,516($sp)
	sw	$20,512($sp)
	sw	$18,504($sp)
	sw	$17,500($sp)
	sw	$16,496($sp)
	sw	$4,424($sp)
	sw	$3,444($sp)
	sw	$fp,528($sp)
	sw	$19,508($sp)
	sw	$2,448($sp)
	lw	$3,$LC2+20
	li	$23,-2147483648			# 0xffffffff80000000
	ori	$7,$23,0x9
	sw	$3,452($sp)
	ori	$6,$23,0x8
	li	$3,85
	addiu	$16,$sp,432
	li	$2,53
	sb	$2,0($7)
	move	$4,$16
	sb	$3,0($6)
	li	$2,-1431699456			# 0xffffffffaaaa0000
	sw	$0,456($sp)
	sw	$0,460($sp)
	sw	$0,464($sp)
	sw	$0,468($sp)
	sw	$0,472($sp)
	sw	$0,476($sp)
	sw	$0,480($sp)
	sw	$0,484($sp)
	ori	$20,$2,0xaaaa
	.set	noreorder
	.set	nomacro
	jal	strlen
	addiu	$18,$sp,456
	.set	macro
	.set	reorder

	move	$6,$2
	move	$5,$16
	.set	noreorder
	.set	nomacro
	jal	memcpy
	move	$4,$18
	.set	macro
	.set	reorder

	li	$4,426770432			# 0x19700000
	.set	noreorder
	.set	nomacro
	jal	srand
	ori	$4,$4,0x1031
	.set	macro
	.set	reorder

	move	$22,$0
	move	$17,$0
	addiu	$21,$sp,16
$L38:
	addu	$16,$21,$17
	.set	noreorder
	.set	nomacro
	jal	sein
	addiu	$17,$17,1
	.set	macro
	.set	reorder

	sltu	$3,$17,31
	.set	noreorder
	.set	nomacro
	bne	$3,$0,$L38
	sb	$2,440($16)
	.set	macro
	.set	reorder

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

	.set	noreorder
	.set	nomacro
	jal	test_func
	addiu	$4,$sp,424
	.set	macro
	.set	reorder

	li	$fp,100			# 0x64
	move	$18,$0
	move	$17,$0
$L54:
	move	$2,$21
	li	$6,99			# 0x63
$L47:
	addiu	$6,$6,-1
	sw	$20,0($2)
	.set	noreorder
	.set	nomacro
	bgez	$6,$L47
	addiu	$2,$2,4
	.set	macro
	.set	reorder

	xor	$2,$20,$17
	addiu	$16,$17,1
	addiu	$2,$2,-1
	move	$5,$16
	addiu	$6,$sp,16
	li	$7,100			# 0x64
	move	$4,$17
	.set	noreorder
	.set	nomacro
	jal	fibonacci
	sll	$20,$2,1
	.set	macro
	.set	reorder

	li	$7,2			# 0x2
	addiu	$5,$21,8
	.set	noreorder
	.set	nomacro
	j	$L52
	li	$6,97			# 0x61
	.set	macro
	.set	reorder

$L50:
	bltz	$6,$L65
$L52:
	lw	$2,0($5)
	lw	$3,-4($5)
	lw	$4,-8($5)
	subu	$2,$2,$3
	addiu	$6,$6,-1
	.set	noreorder
	.set	nomacro
	bne	$4,$2,$L50
	addiu	$5,$5,4
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	bgez	$6,$L52
	addiu	$7,$7,1
	.set	macro
	.set	reorder

$L65:
	beq	$7,$fp,$L66
$L43:
	slt	$2,$16,1000
	.set	noreorder
	.set	nomacro
	bne	$2,$0,$L54
	move	$17,$16
	.set	macro
	.set	reorder

	li	$2,1000			# 0x3e8
	.set	noreorder
	.set	nomacro
	bne	$18,$2,$L55
	li	$3,1073676288			# 0x3fff0000
	.set	macro
	.set	reorder

	ori	$3,$3,0xffff
	and	$2,$22,$3
	sw	$2,0($23)
	addiu	$22,$22,1
	subu	$16,$0,$22
$L67:
	.set	noreorder
	.set	nomacro
	jal	rand
	andi	$17,$16,0x8
	.set	macro
	.set	reorder

	sll	$17,$17,28
	xor	$17,$17,$2
	mult	$16,$17
	mflo	$18
	mfhi	$19
	.set	noreorder
	.set	nomacro
	jal	print_word
	move	$4,$16
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,32			# 0x20
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,120			# 0x78
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,32			# 0x20
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	print_word
	move	$4,$17
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,32			# 0x20
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,61			# 0x3d
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,32			# 0x20
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	print_word
	sra	$4,$19,0
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	print_word
	move	$4,$18
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,13			# 0xd
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	jal	saus
	li	$4,10			# 0xa
	.set	macro
	.set	reorder

	move	$18,$0
	.set	noreorder
	.set	nomacro
	j	$L54
	move	$17,$0
	.set	macro
	.set	reorder

$L66:
	.set	noreorder
	.set	nomacro
	j	$L43
	addiu	$18,$18,1
	.set	macro
	.set	reorder

$L55:
	li	$2,1073741824			# 0x40000000
	or	$2,$22,$2
	li	$4,88			# 0x58
	.set	noreorder
	.set	nomacro
	jal	saus
	sw	$2,0($23)
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	j	$L67
	subu	$16,$0,$22
	.set	macro
	.set	reorder

	.end	main
