func Main() t.4 = HeapAllocZ(8) [t.4+0] = :functable_A t.5 = t.4 t.6 = t.5 t.3 = t.6 t.8 = t.3 t.3 = t.8 t.9 = [t.3+0] t.10 = [t.9+0] t.7 = call t.10(t.3) t.11 = t.7 t.12 = t.11 PrintIntS(t.12) ret const functable_A :A_set_get func A_set_get(this ) t.0 = HeapAllocZ(12) [t.0+0] = :functable_B t.1 = t.0 t.2 = t.1 [this+4] = t.2 t.5 = [this+4] t.6 = t.5 t.7 = [t.6+0] t.8 = [t.7+4] t.4 = call t.8(t.6) t.9 = t.4 t.3 = t.9 t.11 = [this+4] t.6 = t.11 t.12 = [t.6+0] t.13 = [t.12+0] t.10 = call t.13(t.6) t.14 = t.10 t.3 = t.14 t.15 = t.3 t.16 = t.15 t.17 = t.16 ret t.17 const functable_B :B_get :B_set func B_get(this ) t.0 = [this+8] t.1 = t.0 t.2 = t.1 ret t.2 func B_set(this ) t.0 = 12 t.1 = t.0 [this+8] = t.1 t.2 = 1 t.3 = t.2 t.4 = t.3 ret t.4 func AllocArray(size) bytes = MulS(size 4) bytes = Add(bytes 4) v = HeapAllocZ(bytes) [v] = size ret v