@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()

(void()) main()
main: scope:[main]  from @1
  [4] (byte*) print2::at ← (const byte*) screen
  [5] (byte*) print2::msg ← (const byte*) main::msg
  [6] call print2 
  to:main::@1
main::@1: scope:[main]  from main
  [7] (byte*) print2::at ← (const byte*) screen+(byte) $50
  [8] (byte*) print2::msg ← (const byte*) main::msg1
  [9] call print2 
  to:main::@return
main::@return: scope:[main]  from main::@1
  [10] return 
  to:@return

(void()) print2((byte*) print2::at , (byte*) print2::msg)
print2: scope:[print2]  from main main::@1
  [11] phi()
  to:print2::@1
print2::@1: scope:[print2]  from print2 print2::@3
  [12] (byte) print2::j#2 ← phi( print2/(byte) 0 print2::@3/(byte) print2::j#1 )
  [12] (byte) print2::i#2 ← phi( print2/(byte) 0 print2::@3/(byte) print2::i#1 )
  [13] if((byte) 0!=*((byte*) print2::msg + (byte) print2::i#2)) goto print2::@2
  to:print2::@return
print2::@return: scope:[print2]  from print2::@1
  [14] return 
  to:@return
print2::@2: scope:[print2]  from print2::@1
  [15] (byte*) print_char::at ← (byte*) print2::at
  [16] (byte) print_char::idx#0 ← (byte) print2::j#2
  [17] (byte) print_char::ch#0 ← *((byte*) print2::msg + (byte) print2::i#2)
  [18] call print_char 
  to:print2::@3
print2::@3: scope:[print2]  from print2::@2
  [19] (byte) print2::j#1 ← (byte) print2::j#2 + (byte) 2
  [20] (byte) print2::i#1 ← ++ (byte) print2::i#2
  to:print2::@1

(void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch)
print_char: scope:[print_char]  from print2::@2
  [21] (byte) print_char::idx#1 ← phi( print2::@2/(byte) print_char::idx#0 )
  [21] (byte) print_char::ch#1 ← phi( print2::@2/(byte) print_char::ch#0 )
  [22] *((byte*) print_char::at + (byte) print_char::idx#1) ← (byte) print_char::ch#1
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [23] return 
  to:@return
