const empty_Fac func Main [in 0, out 0, local 0] $a0 = :empty_Fac $a1 = 10 call :Fac.ComputeFac $t0 = $v0 PrintIntS($t0) ret func Fac.ComputeFac [in 0, out 0, local 1] local[0] = $s0 $t0 = $a0 $s0 = $a1 $t1 = LtS($s0 1) if0 $t1 goto :if1_else $t1 = 1 goto :if1_end if1_else: $t2 = Sub($s0 1) $a0 = $t0 $a1 = $t2 call :Fac.ComputeFac $t2 = $v0 $t1 = MulS($s0 $t2) if1_end: $v0 = $t1 $s0 = local[0] ret