@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()

(void()) main()
main: scope:[main]  from @1
  [4] phi()
  [5] call fill 
  to:main::@2
main::@2: scope:[main]  from main
  [6] phi()
  [7] call fill 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [8] *((const byte*) BORDERCOL) ← (const byte) BLUE
  [9] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3
  [10] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400
  [11] call circle 
  to:main::@1
main::@1: scope:[main]  from main::@1 main::@3
  [12] phi()
  to:main::@1

(void()) circle((signed word) circle::xc , (signed word) circle::yc , (signed word) circle::r)
circle: scope:[circle]  from main::@3
  [13] phi()
  to:circle::@1
circle::@1: scope:[circle]  from circle circle::@13
  [14] (signed word) circle::p#3 ← phi( circle/(signed byte) 3-(const signed word) circle::r#0<<(signed byte) 1 circle::@13/(signed word) circle::p#10 )
  [14] (signed word) circle::y#13 ← phi( circle/(const signed word) circle::r#0 circle::@13/(signed word) circle::y#10 )
  [14] (signed word) circle::x1#10 ← phi( circle/(signed word) 0 circle::@13/(signed word) circle::x1#1 )
  [15] if((signed word) circle::x1#10<=(signed word) circle::y#13) goto circle::@2
  to:circle::@return
circle::@return: scope:[circle]  from circle::@1
  [16] return 
  to:@return
circle::@2: scope:[circle]  from circle::@1
  [17] if((signed word) circle::p#3<(signed byte) 0) goto circle::@3
  to:circle::@5
circle::@5: scope:[circle]  from circle::@2
  [18] (signed word) circle::y#1 ← (signed word) circle::y#13 - (signed byte) 1
  [19] (signed word~) circle::$5 ← (signed word) circle::x1#10 - (signed word) circle::y#1
  [20] (signed word~) circle::$6 ← (signed word~) circle::$5 << (signed byte) 2
  [21] (signed word~) circle::$7 ← (signed word) circle::p#3 + (signed word~) circle::$6
  [22] (signed word) circle::p#2 ← (signed word~) circle::$7 + (signed byte) $a
  to:circle::@4
circle::@4: scope:[circle]  from circle::@3 circle::@5
  [23] (signed word) circle::p#10 ← phi( circle::@3/(signed word) circle::p#1 circle::@5/(signed word) circle::p#2 )
  [23] (signed word) circle::y#10 ← phi( circle::@3/(signed word) circle::y#13 circle::@5/(signed word) circle::y#1 )
  [24] (signed word) plot::x#0 ← (const signed word) circle::xc#0 + (signed word) circle::x1#10
  [25] (signed word) plot::y#0 ← (const signed word) circle::yc#0 - (signed word) circle::y#10
  [26] call plot 
  to:circle::@6
circle::@6: scope:[circle]  from circle::@4
  [27] (signed word) plot::x#1 ← (const signed word) circle::xc#0 - (signed word) circle::x1#10
  [28] (signed word) plot::y#1 ← (const signed word) circle::yc#0 - (signed word) circle::y#10
  [29] call plot 
  to:circle::@7
circle::@7: scope:[circle]  from circle::@6
  [30] (signed word) plot::x#2 ← (const signed word) circle::xc#0 + (signed word) circle::x1#10
  [31] (signed word) plot::y#2 ← (const signed word) circle::yc#0 + (signed word) circle::y#10
  [32] call plot 
  to:circle::@8
circle::@8: scope:[circle]  from circle::@7
  [33] (signed word) plot::x#3 ← (const signed word) circle::xc#0 - (signed word) circle::x1#10
  [34] (signed word) plot::y#3 ← (const signed word) circle::yc#0 + (signed word) circle::y#10
  [35] call plot 
  to:circle::@9
circle::@9: scope:[circle]  from circle::@8
  [36] (signed word) plot::x#4 ← (const signed word) circle::xc#0 + (signed word) circle::y#10
  [37] (signed word) plot::y#4 ← (const signed word) circle::yc#0 - (signed word) circle::x1#10
  [38] call plot 
  to:circle::@10
circle::@10: scope:[circle]  from circle::@9
  [39] (signed word) plot::x#5 ← (const signed word) circle::xc#0 - (signed word) circle::y#10
  [40] (signed word) plot::y#5 ← (const signed word) circle::yc#0 - (signed word) circle::x1#10
  [41] call plot 
  to:circle::@11
circle::@11: scope:[circle]  from circle::@10
  [42] (signed word) plot::x#6 ← (const signed word) circle::xc#0 + (signed word) circle::y#10
  [43] (signed word) plot::y#6 ← (const signed word) circle::yc#0 + (signed word) circle::x1#10
  [44] call plot 
  to:circle::@12
circle::@12: scope:[circle]  from circle::@11
  [45] (signed word) plot::x#7 ← (const signed word) circle::xc#0 - (signed word) circle::y#10
  [46] (signed word) plot::y#7 ← (const signed word) circle::yc#0 + (signed word) circle::x1#10
  [47] call plot 
  to:circle::@13
circle::@13: scope:[circle]  from circle::@12
  [48] (signed word) circle::x1#1 ← ++ (signed word) circle::x1#10
  to:circle::@1
circle::@3: scope:[circle]  from circle::@2
  [49] (signed word~) circle::$9 ← (signed word) circle::x1#10 << (signed byte) 2
  [50] (signed word~) circle::$10 ← (signed word) circle::p#3 + (signed word~) circle::$9
  [51] (signed word) circle::p#1 ← (signed word~) circle::$10 + (signed byte) 6
  to:circle::@4

(void()) plot((signed word) plot::x , (signed word) plot::y)
plot: scope:[plot]  from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9
  [52] (signed word) plot::y#8 ← phi( circle::@6/(signed word) plot::y#1 circle::@7/(signed word) plot::y#2 circle::@8/(signed word) plot::y#3 circle::@9/(signed word) plot::y#4 circle::@10/(signed word) plot::y#5 circle::@11/(signed word) plot::y#6 circle::@12/(signed word) plot::y#7 circle::@4/(signed word) plot::y#0 )
  [52] (signed word) plot::x#8 ← phi( circle::@6/(signed word) plot::x#1 circle::@7/(signed word) plot::x#2 circle::@8/(signed word) plot::x#3 circle::@9/(signed word) plot::x#4 circle::@10/(signed word) plot::x#5 circle::@11/(signed word) plot::x#6 circle::@12/(signed word) plot::x#7 circle::@4/(signed word) plot::x#0 )
  [53] (signed word~) plot::$0 ← (signed word) plot::x#8 & (signed dword) $fff8
  [54] (byte*) plot::location#1 ← (const byte*) BITMAP + (signed word~) plot::$0
  [55] (byte~) plot::$1 ← < (signed word) plot::y#8
  [56] (byte~) plot::$2 ← (byte~) plot::$1 & (byte) 7
  [57] (byte*) plot::location#2 ← (byte*) plot::location#1 + (byte~) plot::$2
  [58] (signed word~) plot::$3 ← (signed word) plot::y#8 >> (signed byte) 3
  [59] (signed word~) plot::$7 ← (signed word~) plot::$3 << (byte) 2
  [60] (signed word~) plot::$8 ← (signed word~) plot::$7 + (signed word~) plot::$3
  [61] (signed word~) plot::$4 ← (signed word~) plot::$8 << (byte) 6
  [62] (byte*) plot::location#3 ← (byte*) plot::location#2 + (signed word~) plot::$4
  [63] (signed byte~) plot::$5 ← (signed word) plot::x#8 & (signed byte) 7
  [64] (byte~) plot::$6 ← *((byte*) plot::location#3) | *((const byte*) bitmask + (signed byte~) plot::$5)
  [65] *((byte*) plot::location#3) ← (byte~) plot::$6
  to:plot::@return
plot::@return: scope:[plot]  from plot
  [66] return 
  to:@return

(void()) fill((byte*) fill::start , (signed word) fill::size , (byte) fill::val)
fill: scope:[fill]  from main main::@2
  [67] (byte) fill::val#4 ← phi( main/(byte) 0 main::@2/(byte) $16 )
  [67] (signed word) fill::size#2 ← phi( main/(signed word)(number) $28*(number) $19*(number) 8 main::@2/(signed word)(number) $28*(number) $19 )
  [67] (byte*) fill::addr#0 ← phi( main/(const byte*) BITMAP main::@2/(const byte*) SCREEN )
  [68] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (signed word) fill::size#2
  to:fill::@1
fill::@1: scope:[fill]  from fill fill::@2
  [69] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@2/(byte*) fill::addr#1 )
  [70] if((byte*) fill::addr#2!=(byte*) fill::end#0) goto fill::@2
  to:fill::@return
fill::@return: scope:[fill]  from fill::@1
  [71] return 
  to:@return
fill::@2: scope:[fill]  from fill::@1
  [72] *((byte*) fill::addr#2) ← (byte) fill::val#4
  [73] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
  to:fill::@1
