@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  [4] phi()
  [5] call print 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call print 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi()
  [9] call print 
  to:main::@return
main::@return: scope:[main]  from main::@2
  [10] return 
  to:@return
print: scope:[print]  from main main::@1 main::@2
  [11] (byte*) screen#18 ← phi( main/(byte*) 1024 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 )
  [11] (byte*) print::msg#6 ← phi( main/(const byte[]) msg1#0 main::@1/(const byte[]) main::msg2#0 main::@2/(const string) main::msg )
  to:print::@1
print::@1: scope:[print]  from print print::@2
  [12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
  [12] (byte*) print::msg#4 ← phi( print/(byte*) print::msg#6 print::@2/(byte*) print::msg#3 )
  [13] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2
  to:print::@return
print::@return: scope:[print]  from print::@1
  [14] return 
  to:@return
print::@2: scope:[print]  from print::@1
  [15] *((byte*) screen#12) ← *((byte*) print::msg#4)
  [16] (byte*) screen#5 ← ++ (byte*) screen#12
  [17] (byte*) print::msg#3 ← ++ (byte*) print::msg#4
  to:print::@1
