@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  [4] phi()
  [5] call scrollup1 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call scrollup2 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi()
  [9] call scrollup3 
  to:main::@return
main::@return: scope:[main]  from main::@2
  [10] return 
  to:@return
scrollup3: scope:[scrollup3]  from main::@2
  [11] phi()
  to:scrollup3::@2
scrollup3::@2: scope:[scrollup3]  from scrollup3 scrollup3::@1
  [12] (word) scrollup3::line#10 ← phi( scrollup3::@1/(word) scrollup3::line#1 scrollup3/(byte) 0 )
  to:scrollup3::@4_1
scrollup3::@4_1: scope:[scrollup3]  from scrollup3::@2
  [13] (word~) scrollup3::l2#7 ← (word) scrollup3::line#10
  to:scrollup3::@4
scrollup3::@4: scope:[scrollup3]  from scrollup3::@3 scrollup3::@4_1
  [14] (word) scrollup3::l2#4 ← phi( scrollup3::@3/(word) scrollup3::l2#1 scrollup3::@4_1/(word~) scrollup3::l2#7 )
  [14] (byte) scrollup3::c#4 ← phi( scrollup3::@3/(byte) scrollup3::c#1 scrollup3::@4_1/(byte) 0 )
  [15] (byte*~) scrollup3::$3 ← (const byte*) screen#0+(byte) $28 + (word) scrollup3::l2#4
  [16] (byte*~) scrollup3::$4 ← (const byte*) screen#0 + (word) scrollup3::l2#4
  [17] *((byte*~) scrollup3::$4) ← *((byte*~) scrollup3::$3)
  [18] (word) scrollup3::l2#1 ← ++ (word) scrollup3::l2#4
  [19] (byte) scrollup3::c#1 ← ++ (byte) scrollup3::c#4
  to:scrollup3::@3
scrollup3::@3: scope:[scrollup3]  from scrollup3::@4
  [20] if((byte) scrollup3::c#1<(byte) $28) goto scrollup3::@4
  to:scrollup3::@5
scrollup3::@5: scope:[scrollup3]  from scrollup3::@3
  [21] (word) scrollup3::line#1 ← (word) scrollup3::line#10 + (byte) $28
  to:scrollup3::@1
scrollup3::@1: scope:[scrollup3]  from scrollup3::@5
  [22] if((word) scrollup3::line#1<(word)(number) $28*(number) $18) goto scrollup3::@2
  to:scrollup3::@return
scrollup3::@return: scope:[scrollup3]  from scrollup3::@1
  [23] return 
  to:@return
scrollup2: scope:[scrollup2]  from main::@1
  [24] phi()
  to:scrollup2::@1
scrollup2::@1: scope:[scrollup2]  from scrollup2 scrollup2::@3
  [25] (byte) scrollup2::l#4 ← phi( scrollup2/(byte) 0 scrollup2::@3/(byte) scrollup2::l#1 )
  [25] (byte*) scrollup2::line1#3 ← phi( scrollup2/(const byte*) screen#0 scrollup2::@3/(byte*) scrollup2::line1#1 )
  [25] (byte*) scrollup2::line2#3 ← phi( scrollup2/(const byte*) screen#0+(byte) $28 scrollup2::@3/(byte*) scrollup2::line2#1 )
  to:scrollup2::@2
scrollup2::@2: scope:[scrollup2]  from scrollup2::@1 scrollup2::@2
  [26] (byte) scrollup2::c#2 ← phi( scrollup2::@1/(byte) 0 scrollup2::@2/(byte) scrollup2::c#1 )
  [26] (byte*) scrollup2::line1#2 ← phi( scrollup2::@1/(byte*) scrollup2::line1#3 scrollup2::@2/(byte*) scrollup2::line1#1 )
  [26] (byte*) scrollup2::line2#2 ← phi( scrollup2::@1/(byte*) scrollup2::line2#3 scrollup2::@2/(byte*) scrollup2::line2#1 )
  [27] *((byte*) scrollup2::line1#2) ← *((byte*) scrollup2::line2#2)
  [28] (byte*) scrollup2::line1#1 ← ++ (byte*) scrollup2::line1#2
  [29] (byte*) scrollup2::line2#1 ← ++ (byte*) scrollup2::line2#2
  [30] (byte) scrollup2::c#1 ← ++ (byte) scrollup2::c#2
  [31] if((byte) scrollup2::c#1!=(byte) $28) goto scrollup2::@2
  to:scrollup2::@3
scrollup2::@3: scope:[scrollup2]  from scrollup2::@2
  [32] (byte) scrollup2::l#1 ← ++ (byte) scrollup2::l#4
  [33] if((byte) scrollup2::l#1!=(byte) $18) goto scrollup2::@1
  to:scrollup2::@return
scrollup2::@return: scope:[scrollup2]  from scrollup2::@3
  [34] return 
  to:@return
scrollup1: scope:[scrollup1]  from main
  [35] phi()
  to:scrollup1::@2
scrollup1::@2: scope:[scrollup1]  from scrollup1 scrollup1::@1
  [36] (word) scrollup1::line#10 ← phi( scrollup1::@1/(word) scrollup1::line#1 scrollup1/(byte) 0 )
  to:scrollup1::@4
scrollup1::@4: scope:[scrollup1]  from scrollup1::@2 scrollup1::@3
  [37] (byte) scrollup1::c#4 ← phi( scrollup1::@3/(byte) scrollup1::c#1 scrollup1::@2/(byte) 0 )
  [38] (word~) scrollup1::$2 ← (word) scrollup1::line#10 + (byte) scrollup1::c#4
  [39] (word~) scrollup1::$4 ← (word) scrollup1::line#10 + (byte) scrollup1::c#4
  [40] (byte*~) scrollup1::$5 ← (const byte*) screen#0+(byte) $28 + (word~) scrollup1::$4
  [41] (byte*~) scrollup1::$6 ← (const byte*) screen#0 + (word~) scrollup1::$2
  [42] *((byte*~) scrollup1::$6) ← *((byte*~) scrollup1::$5)
  [43] (byte) scrollup1::c#1 ← ++ (byte) scrollup1::c#4
  to:scrollup1::@3
scrollup1::@3: scope:[scrollup1]  from scrollup1::@4
  [44] if((byte) scrollup1::c#1<(byte) $28) goto scrollup1::@4
  to:scrollup1::@5
scrollup1::@5: scope:[scrollup1]  from scrollup1::@3
  [45] (word) scrollup1::line#1 ← (word) scrollup1::line#10 + (byte) $28
  to:scrollup1::@1
scrollup1::@1: scope:[scrollup1]  from scrollup1::@5
  [46] if((word) scrollup1::line#1<(word)(number) $28*(number) $18) goto scrollup1::@2
  to:scrollup1::@return
scrollup1::@return: scope:[scrollup1]  from scrollup1::@1
  [47] return 
  to:@return
