# factorial as generated by the compiler
	.ent	factC
	.global factC
	.type	factC, @function
factC:
	.frame	$fp,24,$ra		# vars= 0, regs= 2/0, args= 16, gp= 0
	.mask	0xc0000000,-4
	.fmask	0x00000000,0
	.set	noreorder
	.set	nomacro
	addiu	$sp,$sp,-24             # Always allocates 24 for saved args?
	sw	$ra,20($sp)
	sw	$fp,16($sp)
	move	$fp,$sp
	sw	$a0,24($fp)	 # Storing n on stack
	lw	$v0,24($fp)	 # $v0 <- n
	slt	$v0,$v0,2	 # testing if n<2
	beq	$v0,$0,Lelse
	nop
	li	$v0,1            # putting 1 in LO
	mtlo	$v0
	j	Ljoin
	nop
Lelse:	
	lw	$v0,24($fp)     # $v0 is n
	addiu	$v0,$v0,-1      # $v0 is n-1
	move	$a0,$v0         # $a0 is n-1
	jal	factC
	nop
	move	$v1,$v0         # $v1 is (n-1)!
	lw	$v0,24($fp)     # $v0 is n
	mult	$v1,$v0         # multiply n * (n-1)!
Ljoin:	
	mflo	$v0
	move	$sp,$fp
	lw	$ra,20($sp)
	lw	$fp,16($sp)
	addiu	$sp,$sp,24
	j	$ra
	nop
	.end	factC
	.size	factC, .-factC




