		.data
main_regs:		.word	0,0,0,0,0,0,0,0
main_return_addr:		.word	0
a_1:		.word	0
arr_1:		.word	0,0,0,0,0
len_1:		.word	0
temp_1:		.word	0
remainder_1:		.word	0
ten_power_1:		.word	0
sum_1:		.word	0
divisor_1:		.word	0
i_1:		.word	0
j_1:		.word	0
f1_1:		.word	0
f2_1:		.word	0
		.text
main:
		li	$t0, 21
		sw	$t0, a_1
label0:
		li	$t0, 1
		sw	$t0, f1_1
		sw	$t0, f2_1
label2:
		lw	$t0, f2_1
		lw	$t1, a_1
		slt	$t2, $t0, $t1
		beqz	$t2, label3
		lw	$t0, f1_1
		lw	$t1, f2_1
		add	$t2, $t0, $t1
		sw	$t2, f2_1
		move	$t0, $t2
		lw	$t1, f1_1
		sub	$t2, $t0, $t1
		sw	$t2, f1_1
		lw	$t0, f2_1
		lw	$t1, a_1
		seq	$t2, $t0, $t1
		beqz	$t2, label4
		lw	$t0, a_1
		li	$v0, 1
		move	$a0, $t0
		syscall
		b	label3
label4:
		b	label2
label3:
		lw	$t0, a_1
		addi	$t2, $t0, 1
		sw	$t2, a_1
		move	$t0, $t2
		seq	$t2, $t0, 100
		beqz	$t2, label5
		b	label1
label5:
		b	label0
label1:
		li	$v0, 5
		syscall
		move	$t0, $v0
		sw	$t0, a_1
		sw	$t0, temp_1
		li	$t0, 1
		sw	$t0, len_1
label6:
		lw	$t0, temp_1
		div	$t2, $t0, 10
		sgt	$t1, $t2, 0
		beqz	$t1, label7
		lw	$t0, len_1
		addi	$t2, $t0, 1
		sw	$t2, len_1
		lw	$t0, temp_1
		div	$t2, $t0, 10
		sw	$t2, temp_1
		b	label6
label7:
		li	$t0, 2
		sw	$t0, i_1
		lw	$t0, a_1
		li	$t1, 1
		sle	$t2, $t0, 1
		beqz	$t2, label8
		li	$v0, 1
		li	$a0, 0
		syscall
		li	$v0, 1
		syscall
		li	$v0, 1
		syscall
		li	$v0, 1
		syscall
label8:
		lw	$t0, a_1
		sgt	$t2, $t0, $t1
		beqz	$t2, label9
label10:
		lw	$t0, i_1
		lw	$t1, a_1
		slt	$t2, $t0, $t1
		beqz	$t2, label11
		lw	$t0, a_1
		move	$t1, $t0
		lw	$t2, i_1
		div	$t3, $t1, $t2
		lw	$t1, i_1
		mul	$t2, $t3, $t1
		sub	$t1, $t0, $t2
		beqz	$t1, label12
		lw	$t0, i_1
		addi	$t2, $t0, 1
		sw	$t2, i_1
		b	label10
label12:
		b	label11
		b	label10
label11:
		lw	$t0, i_1
		lw	$t1, a_1
		sne	$t2, $t0, $t1
		beqz	$t2, label13
		li	$v0, 1
		li	$a0, 0
		syscall
		li	$v0, 1
		syscall
		li	$v0, 1
		syscall
		li	$v0, 1
		syscall
label13:
		lw	$t0, i_1
		lw	$t1, a_1
		seq	$t2, $t0, $t1
		beqz	$t2, label14
		lw	$t0, a_1
		sw	$t0, temp_1
		li	$t0, 0
		sw	$t0, i_1
label15:
		lw	$t0, i_1
		lw	$t1, len_1
		slt	$t2, $t0, $t1
		beqz	$t2, label16
		lw	$t0, temp_1
		move	$t1, $t0
		div	$t3, $t1, 10
		mul	$t2, $t3, 10
		sub	$t1, $t0, $t2
		sw	$t1, remainder_1
		li	$t0, 0
		sw	$t0, j_1
		li	$t0, 1
		sw	$t0, ten_power_1
label17:
		lw	$t0, j_1
		lw	$t1, len_1
		sub	$t3, $t1, 1
		slt	$t1, $t0, $t3
		beqz	$t1, label18
		lw	$t0, ten_power_1
		mul	$t2, $t0, 10
		sw	$t2, ten_power_1
		lw	$t0, j_1
		addi	$t2, $t0, 1
		sw	$t2, j_1
		b	label17
label18:
		lw	$t0, remainder_1
		lw	$t1, ten_power_1
		mul	$t2, $t0, $t1
		lw	$t0, temp_1
		div	$t3, $t0, 10
		add	$t0, $t2, $t3
		sw	$t0, temp_1
		lw	$t0, i_1
		addi	$t2, $t0, 1
		sw	$t2, i_1
		li	$t0, 2
		sw	$t0, j_1
label19:
		lw	$t0, j_1
		lw	$t1, temp_1
		slt	$t2, $t0, $t1
		beqz	$t2, label20
		lw	$t0, temp_1
		move	$t1, $t0
		lw	$t2, j_1
		div	$t3, $t1, $t2
		lw	$t1, j_1
		mul	$t2, $t3, $t1
		sub	$t1, $t0, $t2
		beqz	$t1, label21
		lw	$t0, j_1
		addi	$t2, $t0, 1
		sw	$t2, j_1
		b	label19
label21:
		b	label20
		b	label19
label20:
		lw	$t0, j_1
		lw	$t1, temp_1
		sne	$t2, $t0, $t1
		beqz	$t2, label22
		li	$v0, 1
		li	$a0, 0
		syscall
		li	$v0, 1
		syscall
		li	$v0, 1
		syscall
		li	$v0, 1
		syscall
		b	label16
label22:
		b	label15
label16:
		lw	$t0, j_1
		lw	$t1, temp_1
		seq	$t2, $t0, $t1
		beqz	$t2, label23
		li	$v0, 1
		li	$a0, 1111
		syscall
label23:
label14:
label9:
		li	$t0, 0
		sw	$t0, i_1
label24:
		lw	$t0, i_1
		slt	$t2, $t0, 5
		beqz	$t2, label25
		li	$v0, 5
		syscall
		move	$t0, $v0
		sw	$t0, a_1
		lw	$t0, i_1
		lw	$t1, a_1
		mul	$t0, $t0, 4
		la	$t2, arr_1
		add	$t0, $t0, $t2
		sw	$t1, ($t0)
		lw	$t0, i_1
		addi	$t2, $t0, 1
		sw	$t2, i_1
		b	label24
label25:
		li	$t0, 1
		sw	$t0, sum_1
		li	$t0, 2
		sw	$t0, divisor_1
label26:
		lw	$t0, divisor_1
		la	$t2, arr_1
		lw	$t1, ($t2)
		div	$t3, $t1, 2
		addi	$t2, $t3, 1
		slt	$t1, $t0, $t2
		beqz	$t1, label27
		la	$t1, arr_1
		lw	$t0, ($t1)
		la	$t2, arr_1
		lw	$t1, ($t2)
		lw	$t2, divisor_1
		div	$t3, $t1, $t2
		lw	$t1, divisor_1
		mul	$t2, $t3, $t1
		sub	$t1, $t0, $t2
		bnez	$t1, label28
		lw	$t0, sum_1
		lw	$t1, divisor_1
		add	$t2, $t0, $t1
		sw	$t2, sum_1
label28:
		lw	$t0, divisor_1
		addi	$t2, $t0, 1
		sw	$t2, divisor_1
		b	label26
label27:
		lw	$t0, sum_1
		la	$t2, arr_1
		addi	$t2, $t2, 4
		lw	$t1, ($t2)
		sne	$t2, $t0, $t1
		beqz	$t2, label29
		li	$v0, 1
		li	$a0, 0
		syscall
label29:
		lw	$t0, sum_1
		la	$t2, arr_1
		addi	$t2, $t2, 4
		lw	$t1, ($t2)
		seq	$t2, $t0, $t1
		beqz	$t2, label30
		li	$t0, 1
		sw	$t0, sum_1
		li	$t0, 2
		sw	$t0, divisor_1
label31:
		lw	$t0, divisor_1
		la	$t2, arr_1
		addi	$t2, $t2, 4
		lw	$t1, ($t2)
		div	$t3, $t1, 2
		addi	$t2, $t3, 1
		slt	$t1, $t0, $t2
		beqz	$t1, label32
		la	$t1, arr_1
		addi	$t1, $t1, 4
		lw	$t0, ($t1)
		lw	$t1, divisor_1
		div	$t2, $t0, $t1
		lw	$t0, divisor_1
		mul	$t1, $t2, $t0
		la	$t2, arr_1
		addi	$t2, $t2, 4
		lw	$t0, ($t2)
		seq	$t2, $t1, $t0
		beqz	$t2, label33
		lw	$t0, sum_1
		lw	$t1, divisor_1
		add	$t2, $t0, $t1
		sw	$t2, sum_1
label33:
		lw	$t0, divisor_1
		addi	$t2, $t0, 1
		sw	$t2, divisor_1
		b	label31
label32:
		lw	$t0, sum_1
		la	$t2, arr_1
		lw	$t1, ($t2)
		sne	$t2, $t0, $t1
		beqz	$t2, label34
		li	$v0, 1
		li	$a0, 0
		syscall
label34:
		lw	$t0, sum_1
		la	$t2, arr_1
		lw	$t1, ($t2)
		seq	$t2, $t0, $t1
		beqz	$t2, label35
		li	$v0, 1
		li	$a0, 1
		syscall
label35:
label30:
		li	$t0, 2
		sw	$t0, i_1
label36:
		lw	$t0, i_1
		slt	$t2, $t0, 5
		beqz	$t2, label37
		li	$t0, 1
		sw	$t0, sum_1
		li	$t0, 2
		sw	$t0, divisor_1
label38:
		lw	$t0, divisor_1
		lw	$t1, i_1
		la	$t2, arr_1
		mul	$t1, $t1, 4
		add	$t2, $t2, $t1
		lw	$t1, ($t2)
		div	$t3, $t1, 2
		addi	$t2, $t3, 1
		slt	$t1, $t0, $t2
		beqz	$t1, label39
		lw	$t0, i_1
		la	$t1, arr_1
		mul	$t0, $t0, 4
		add	$t1, $t1, $t0
		lw	$t0, ($t1)
		lw	$t1, divisor_1
		div	$t2, $t0, $t1
		lw	$t0, divisor_1
		mul	$t1, $t2, $t0
		lw	$t0, i_1
		la	$t2, arr_1
		mul	$t0, $t0, 4
		add	$t2, $t2, $t0
		lw	$t0, ($t2)
		seq	$t2, $t1, $t0
		beqz	$t2, label40
		lw	$t0, sum_1
		lw	$t1, divisor_1
		add	$t2, $t0, $t1
		sw	$t2, sum_1
label40:
		lw	$t0, divisor_1
		addi	$t2, $t0, 1
		sw	$t2, divisor_1
		b	label38
label39:
		lw	$t0, sum_1
		lw	$t1, i_1
		la	$t2, arr_1
		mul	$t1, $t1, 4
		add	$t2, $t2, $t1
		lw	$t1, ($t2)
		seq	$t2, $t0, $t1
		beqz	$t2, label41
		li	$v0, 1
		li	$a0, 1
		syscall
		lw	$t0, i_1
		addi	$t2, $t0, 1
		sw	$t2, i_1
		b	label36
label41:
		lw	$t0, sum_1
		lw	$t1, i_1
		la	$t2, arr_1
		mul	$t1, $t1, 4
		add	$t2, $t2, $t1
		lw	$t1, ($t2)
		sne	$t2, $t0, $t1
		beqz	$t2, label42
		li	$v0, 1
		li	$a0, 0
		syscall
		lw	$t0, i_1
		addi	$t2, $t0, 1
		sw	$t2, i_1
label42:
		b	label36
label37:
		li	$v0, 10
		syscall
