const vmt_Fac :Fac.ComputeFac func Main [in 0, out 0, local 0] $t0 = HeapAllocZ(4) [$t0] = :vmt_Fac if $t0 goto :null1 Error("null pointer") null1: $t1 = [$t0] $t1 = [$t1] $a0 = $t0 $a1 = 10 call $t1 $t1 = $v0 PrintIntS($t1) 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 = [$t0] $t2 = [$t2] $t3 = Sub($s0 1) $a0 = $t0 $a1 = $t3 call $t2 $t3 = $v0 $t1 = MulS($s0 $t3) if1_end: $v0 = $t1 $s0 = local[0] ret