@begin: scope:[]  from
  [0] phi()
  to:@20
@20: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @20
  [3] phi()
main: scope:[main]  from @20
  [4] phi()
  [5] call print_str 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call print_ln 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] (byte*~) print_char_cursor#32 ← (byte*) print_line_cursor#1
  [9] call print_str 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [10] phi()
  [11] call print_ln 
  to:main::@4
main::@4: scope:[main]  from main::@3
  [12] (byte*~) print_char_cursor#33 ← (byte*) print_line_cursor#1
  [13] call print_str 
  to:main::@5
main::@5: scope:[main]  from main::@4
  [14] phi()
  [15] call print_ln 
  to:main::@return
main::@return: scope:[main]  from main::@5
  [16] return 
  to:@return
print_ln: scope:[print_ln]  from main::@1 main::@3 main::@5
  [17] (byte*) print_line_cursor#16 ← phi( main::@1/((byte*))(word/signed word/dword/signed dword) 1024 main::@3/(byte*) print_line_cursor#1 main::@5/(byte*) print_line_cursor#1 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [18] (byte*) print_line_cursor#8 ← phi( print_ln/(byte*) print_line_cursor#16 print_ln::@1/(byte*) print_line_cursor#1 )
  [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40
  [20] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#13) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [21] return 
  to:@return
print_str: scope:[print_str]  from main main::@2 main::@4
  [22] (byte*) print_char_cursor#29 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(byte*~) print_char_cursor#32 main::@4/(byte*~) print_char_cursor#33 )
  [22] (byte*) print_str::str#6 ← phi( main/(const byte[]) msg#0 main::@2/(const byte[]) msg2#0 main::@4/(const byte[]) msg3#0 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@2
  [23] (byte*) print_char_cursor#13 ← phi( print_str/(byte*) print_char_cursor#29 print_str::@2/(byte*) print_char_cursor#1 )
  [23] (byte*) print_str::str#4 ← phi( print_str/(byte*) print_str::str#6 print_str::@2/(byte*) print_str::str#0 )
  [24] if(*((byte*) print_str::str#4)!=(byte) '@') goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [25] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [26] *((byte*) print_char_cursor#13) ← *((byte*) print_str::str#4)
  [27] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#13
  [28] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#4
  to:print_str::@1
