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