@begin: scope:[]  from
  [0] phi()
  to:@3
@3: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @3
  [3] phi()
main: scope:[main]  from @3
  [4] phi()
  [5] call print_msg 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call print_msg 
  to:main::@return
main::@return: scope:[main]  from main::@1
  [8] return 
  to:@return
print_msg: scope:[print_msg]  from main main::@1
  [9] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#14 )
  [9] (byte) print_msg::idx#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 )
  [10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2
  to:print_msg::@3
print_msg::@3: scope:[print_msg]  from print_msg
  [11] phi()
  to:print_msg::@2
print_msg::@2: scope:[print_msg]  from print_msg print_msg::@3
  [12] (byte*) print_msg::msg#2 ← phi( print_msg/(const byte*) print_msg::msg#0 print_msg::@3/(const byte*) print_msg::msg#1 )
  [13] (byte*) print::msg#0 ← (byte*) print_msg::msg#2
  [14] call print 
  to:print_msg::@return
print_msg::@return: scope:[print_msg]  from print_msg::@2
  [15] return 
  to:@return
print: scope:[print]  from print_msg::@2
  [16] phi()
  to:print::@1
print::@1: scope:[print]  from print print::@2
  [17] (byte*) screen#14 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#6 )
  [17] (byte*) print::msg#2 ← phi( print/(byte*) print::msg#0 print::@2/(byte*) print::msg#1 )
  [18] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2
  to:print::@return
print::@return: scope:[print]  from print::@1
  [19] return 
  to:@return
print::@2: scope:[print]  from print::@1
  [20] *((byte*) screen#14) ← *((byte*) print::msg#2)
  [21] (byte*) screen#6 ← ++ (byte*) screen#14
  [22] (byte*) print::msg#1 ← ++ (byte*) print::msg#2
  to:print::@1
