func Main() t.3 = HeapAllocZ(4) [t.3+0] = :functable_Fac t.4 = t.3 t.5 = t.4 t.6 = [t.5+0] t.7 = [t.6+0] t.8 = 10 t.9 = t.8 t.2 = call t.7(t.5 t.9) t.10 = t.2 t.11 = t.10 PrintIntS(t.11) 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 t.5 = t.4 if0 t.5 goto :if9_else if9_body: t.7 = 1 t.8 = t.7 t.6 = t.8 goto :if9_end if9_else: t.10 = t.0 t.12 = this t.13 = [this] t.15 = t.0 t.16 = 1 t.14 = Sub(t.15 t.16) t.17 = t.14 t.13 = [t.13+0] t.11 = call t.13(this t.17) t.18 = t.11 t.19 = t.18 t.9 = MulS(t.10 t.19) t.20 = t.9 t.6 = t.20 if9_end: t.21 = t.6 t.22 = t.21 t.23 = t.22 ret t.23 func AllocArray(size) bytes = MulS(size 4) bytes = Add(bytes 4) v = HeapAllocZ(bytes) [v] = size ret v