	.text
main:
	add $sp, $sp, -4
	sw $ra, 4($sp)
	add $a0, $0, 4
	jal .alloc
	add $t0, $v0, 0
	add $a0, $0, 4
	jal .alloc
	add $t1, $v0, 0
	la $t2, Fac_ComputeFac
	sw $t2, 0($t0)
	sw $t0, 0($t1)
	add $t0, $t1, 0
	lw $t1 0($t0)
	lw $t2 0($t1)
	add $t1, $0,10
	add $a0, $t0, 0
	add $a1, $t1, 0
	jalr $t2
	add $t3, $v0, 0
	add $a0, $0, $t3
	jal .print
	lw $ra, 4($sp)
	add $sp, $sp, 4
	add $v0, $0, 0
	jr $ra
Fac_ComputeFac:
	add $sp, $sp, -16
	sw $ra, 4($sp)
	sw $s0, 16($sp)
	sw $s1, 12($sp)
	sw $s2, 8($sp)
	add $s0, $a0, 0
	add $s1, $a1, 0
	add $t0, $0,1
	slt $t1, $s1, $t0
	bne $t1, 1, L2
	add $s2, $0,1
	j L3
L2:	add $t0, $s0, 0
	lw $t1 0($t0)
	lw $t2 0($t1)
	add $t1, $0,1
	sub $t3, $s1, $t1
	add $a0, $t0, 0
	add $a1, $t3, 0
	jalr $t2
	add $t1, $v0, 0
	mul $t0, $s1, $t1
	add $s2, $t0, 0
L3:	add $v0, $s2, 0
	lw $s0, 16($sp)
	lw $s1, 12($sp)
	lw $s2, 8($sp)
	lw $ra, 4($sp)
	add $sp, $sp, 16
	jr $ra
.alloc:
	add $v0, $0, 9
	syscall
	jr $ra
.print:
	add $v0, $0, 1
	syscall
	add $a0, $0, 10
	add $v0, $0, 11
	syscall
	jr $ra
