@begin: scope:[]  from
  [0] phi() [ ] ( )
  to:@5
@5: scope:[]  from @begin
  [1] phi() [ ] ( )
  [2] call main param-assignment [ ] ( )
  to:@end
@end: scope:[]  from @5
  [3] phi() [ ] ( )
main: scope:[main]  from @5
  [4] phi() [ ] ( main:2 [ ] )
  [5] call lvalue param-assignment [ ] ( main:2 [ ] )
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi() [ ] ( main:2 [ ] )
  [7] call rvalue param-assignment [ ] ( main:2 [ ] )
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi() [ ] ( main:2 [ ] )
  [9] call rvaluevar param-assignment [ ] ( main:2 [ ] )
  to:main::@3
main::@3: scope:[main]  from main::@2
  [10] phi() [ ] ( main:2 [ ] )
  [11] call lvaluevar param-assignment [ ] ( main:2 [ ] )
  to:main::@return
main::@return: scope:[main]  from main::@3
  [12] return  [ ] ( main:2 [ ] )
  to:@return
lvaluevar: scope:[lvaluevar]  from main::@3
  [13] phi() [ ] ( main:2::lvaluevar:11 [ ] )
  to:lvaluevar::@1
lvaluevar::@1: scope:[lvaluevar]  from lvaluevar lvaluevar::@2
  [14] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/((byte*))(word/signed word/dword/signed dword) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:2::lvaluevar:11 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
  [14] (byte) lvaluevar::i#2 ← phi( lvaluevar/(byte/signed byte/word/signed word/dword/signed dword) 2 lvaluevar::@2/(byte) lvaluevar::i#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:2::lvaluevar:11 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
  [15] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:2::lvaluevar:11 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
  to:lvaluevar::@return
lvaluevar::@return: scope:[lvaluevar]  from lvaluevar::@1
  [16] return  [ ] ( main:2::lvaluevar:11 [ ] )
  to:@return
lvaluevar::@2: scope:[lvaluevar]  from lvaluevar::@1
  [17] *((byte*) lvaluevar::screen#2) ← (const byte) lvaluevar::b#0 [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:2::lvaluevar:11 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
  [18] (byte*) lvaluevar::screen#1 ← ++ (byte*) lvaluevar::screen#2 [ lvaluevar::i#2 lvaluevar::screen#1 ] ( main:2::lvaluevar:11 [ lvaluevar::i#2 lvaluevar::screen#1 ] )
  [19] (byte) lvaluevar::i#1 ← ++ (byte) lvaluevar::i#2 [ lvaluevar::i#1 lvaluevar::screen#1 ] ( main:2::lvaluevar:11 [ lvaluevar::i#1 lvaluevar::screen#1 ] )
  to:lvaluevar::@1
rvaluevar: scope:[rvaluevar]  from main::@2
  [20] phi() [ ] ( main:2::rvaluevar:9 [ ] )
  to:rvaluevar::@1
rvaluevar::@1: scope:[rvaluevar]  from rvaluevar rvaluevar::@2
  [21] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/((byte*))(word/signed word/dword/signed dword) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:2::rvaluevar:9 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
  [21] (byte) rvaluevar::i#2 ← phi( rvaluevar/(byte/signed byte/word/signed word/dword/signed dword) 2 rvaluevar::@2/(byte) rvaluevar::i#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:2::rvaluevar:9 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
  [22] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:2::rvaluevar:9 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
  to:rvaluevar::@return
rvaluevar::@return: scope:[rvaluevar]  from rvaluevar::@1
  [23] return  [ ] ( main:2::rvaluevar:9 [ ] )
  to:@return
rvaluevar::@2: scope:[rvaluevar]  from rvaluevar::@1
  [24] (byte*) rvaluevar::screen#1 ← ++ (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#1 ] ( main:2::rvaluevar:9 [ rvaluevar::i#2 rvaluevar::screen#1 ] )
  [25] (byte) rvaluevar::i#1 ← ++ (byte) rvaluevar::i#2 [ rvaluevar::i#1 rvaluevar::screen#1 ] ( main:2::rvaluevar:9 [ rvaluevar::i#1 rvaluevar::screen#1 ] )
  to:rvaluevar::@1
rvalue: scope:[rvalue]  from main::@1
  [26] phi() [ ] ( main:2::rvalue:7 [ ] )
  to:rvalue::@1
rvalue::@1: scope:[rvalue]  from rvalue rvalue::@2
  [27] (byte) rvalue::i#2 ← phi( rvalue/(byte/signed byte/word/signed word/dword/signed dword) 2 rvalue::@2/(byte) rvalue::i#1 ) [ rvalue::i#2 ] ( main:2::rvalue:7 [ rvalue::i#2 ] )
  [28] if((byte) rvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvalue::@2 [ rvalue::i#2 ] ( main:2::rvalue:7 [ rvalue::i#2 ] )
  to:rvalue::@return
rvalue::@return: scope:[rvalue]  from rvalue::@1
  [29] return  [ ] ( main:2::rvalue:7 [ ] )
  to:@return
rvalue::@2: scope:[rvalue]  from rvalue::@1
  [30] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 [ rvalue::i#1 ] ( main:2::rvalue:7 [ rvalue::i#1 ] )
  to:rvalue::@1
lvalue: scope:[lvalue]  from main
  [31] *((const byte*) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::lvalue:5 [ ] )
  [32] *((const byte*) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::lvalue:5 [ ] )
  to:lvalue::@1
lvalue::@1: scope:[lvalue]  from lvalue lvalue::@2
  [33] (byte) lvalue::i#2 ← phi( lvalue/(byte/signed byte/word/signed word/dword/signed dword) 2 lvalue::@2/(byte) lvalue::i#1 ) [ lvalue::i#2 ] ( main:2::lvalue:5 [ lvalue::i#2 ] )
  [34] if((byte) lvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvalue::@2 [ lvalue::i#2 ] ( main:2::lvalue:5 [ lvalue::i#2 ] )
  to:lvalue::@return
lvalue::@return: scope:[lvalue]  from lvalue::@1
  [35] return  [ ] ( main:2::lvalue:5 [ ] )
  to:@return
lvalue::@2: scope:[lvalue]  from lvalue::@1
  [36] *((const byte*) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ lvalue::i#2 ] ( main:2::lvalue:5 [ lvalue::i#2 ] )
  [37] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 [ lvalue::i#1 ] ( main:2::lvalue:5 [ lvalue::i#1 ] )
  to:lvalue::@1
