func Main() t.3 = HeapAllocZ(4) [t.3+0] = :functable_Fac t.4 = t.3 t.5 = [t.4+0] t.6 = [t.5+0] t.7 = 10 t.2 = call t.6(t.4 t.7) t.8 = t.2 PrintIntS(t.8) ret const functable_Fac :Fac_ComputeFac func Fac_ComputeFac(this t.0 ) t.2 = t.0 t.3 = 1 t.1 = LtS(t.2 t.3) t.4 = t.1 if0 t.4 goto :if6_else if6_body: t.5 = 1 goto :if6_end if6_else: t.7 = t.0 t.9 = [this] t.11 = t.0 t.12 = 1 t.10 = Sub(t.11 t.12) t.13 = t.10 t.9 = [t.9+0] t.8 = call t.9(this t.13) t.14 = t.8 t.6 = MulS(t.7 t.14) t.5 = t.6 if6_end: t.15 = t.5 ret t.15 func AllocArray(size) bytes = MulS(size 4) bytes = Add(bytes 4) v = HeapAllocZ(bytes) [v] = size ret v