
void main()
main: scope:[main]  from
  [0] phi()
  [1] call fill
  to:main::@4
main::@4: scope:[main]  from main
  [2] phi()
  [3] call fill
  to:main::@5
main::@5: scope:[main]  from main::@4
  [4] *BORDER_COLOR = BLUE
  [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
  [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400
  to:main::@1
main::@1: scope:[main]  from main::@5 main::@6
  [7] main::i#2 = phi( main::@5/1, main::@6/main::i#1 )
  [8] if(main::i#2<$b4) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1 main::@3
  [9] phi()
  to:main::@3
main::@2: scope:[main]  from main::@1
  [10] circle::r#0 = main::i#2
  [11] call circle
  to:main::@6
main::@6: scope:[main]  from main::@2
  [12] main::i#1 = main::i#2 + 5
  to:main::@1

void fill(char *start , int size , char val)
fill: scope:[fill]  from main main::@4
  [13] fill::val#4 = phi( main/0, main::@4/$16 )
  [13] fill::size#2 = phi( main/(int)$28*$19*8, main::@4/(int)$28*$19 )
  [13] fill::addr#0 = phi( main/BITMAP, main::@4/SCREEN )
  [14] fill::end#0 = fill::addr#0 + fill::size#2
  to:fill::@1
fill::@1: scope:[fill]  from fill fill::@2
  [15] fill::addr#2 = phi( fill/fill::addr#0, fill::@2/fill::addr#1 )
  [16] if(fill::addr#2!=fill::end#0) goto fill::@2
  to:fill::@return
fill::@return: scope:[fill]  from fill::@1
  [17] return 
  to:@return
fill::@2: scope:[fill]  from fill::@1
  [18] *fill::addr#2 = fill::val#4
  [19] fill::addr#1 = ++ fill::addr#2
  to:fill::@1

void circle(int xc , int yc , int r)
circle: scope:[circle]  from main::@2
  [20] circle::$0 = circle::r#0 << 1
  [21] circle::p#0 = 3 - circle::$0
  to:circle::@1
circle::@1: scope:[circle]  from circle circle::@13
  [22] circle::p#3 = phi( circle/circle::p#0, circle::@13/circle::p#10 )
  [22] circle::y#13 = phi( circle/circle::r#0, circle::@13/circle::y#10 )
  [22] circle::x1#10 = phi( circle/0, circle::@13/circle::x1#1 )
  [23] if(circle::x1#10<=circle::y#13) goto circle::@2
  to:circle::@return
circle::@return: scope:[circle]  from circle::@1
  [24] return 
  to:@return
circle::@2: scope:[circle]  from circle::@1
  [25] if(circle::p#3<0) goto circle::@3
  to:circle::@5
circle::@5: scope:[circle]  from circle::@2
  [26] circle::y#1 = circle::y#13 - 1
  [27] circle::$5 = circle::x1#10 - circle::y#1
  [28] circle::$6 = circle::$5 << 2
  [29] circle::$7 = circle::p#3 + circle::$6
  [30] circle::p#2 = circle::$7 + $a
  to:circle::@4
circle::@4: scope:[circle]  from circle::@3 circle::@5
  [31] circle::p#10 = phi( circle::@3/circle::p#1, circle::@5/circle::p#2 )
  [31] circle::y#10 = phi( circle::@3/circle::y#13, circle::@5/circle::y#1 )
  [32] plot::x#0 = circle::xc#0 + circle::x1#10
  [33] plot::y#0 = circle::yc#0 - circle::y#10
  [34] call plot
  to:circle::@6
circle::@6: scope:[circle]  from circle::@4
  [35] plot::x#1 = circle::xc#0 - circle::x1#10
  [36] plot::y#1 = circle::yc#0 - circle::y#10
  [37] call plot
  to:circle::@7
circle::@7: scope:[circle]  from circle::@6
  [38] plot::x#2 = circle::xc#0 + circle::x1#10
  [39] plot::y#2 = circle::yc#0 + circle::y#10
  [40] call plot
  to:circle::@8
circle::@8: scope:[circle]  from circle::@7
  [41] plot::x#3 = circle::xc#0 - circle::x1#10
  [42] plot::y#3 = circle::yc#0 + circle::y#10
  [43] call plot
  to:circle::@9
circle::@9: scope:[circle]  from circle::@8
  [44] plot::x#4 = circle::xc#0 + circle::y#10
  [45] plot::y#4 = circle::yc#0 - circle::x1#10
  [46] call plot
  to:circle::@10
circle::@10: scope:[circle]  from circle::@9
  [47] plot::x#5 = circle::xc#0 - circle::y#10
  [48] plot::y#5 = circle::yc#0 - circle::x1#10
  [49] call plot
  to:circle::@11
circle::@11: scope:[circle]  from circle::@10
  [50] plot::x#6 = circle::xc#0 + circle::y#10
  [51] plot::y#6 = circle::yc#0 + circle::x1#10
  [52] call plot
  to:circle::@12
circle::@12: scope:[circle]  from circle::@11
  [53] plot::x#7 = circle::xc#0 - circle::y#10
  [54] plot::y#7 = circle::yc#0 + circle::x1#10
  [55] call plot
  to:circle::@13
circle::@13: scope:[circle]  from circle::@12
  [56] circle::x1#1 = ++ circle::x1#10
  to:circle::@1
circle::@3: scope:[circle]  from circle::@2
  [57] circle::$9 = circle::x1#10 << 2
  [58] circle::$10 = circle::p#3 + circle::$9
  [59] circle::p#1 = circle::$10 + 6
  to:circle::@4

void plot(int x , int y)
plot: scope:[plot]  from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9
  [60] plot::y#8 = phi( circle::@10/plot::y#5, circle::@11/plot::y#6, circle::@12/plot::y#7, circle::@4/plot::y#0, circle::@6/plot::y#1, circle::@7/plot::y#2, circle::@8/plot::y#3, circle::@9/plot::y#4 )
  [60] plot::x#8 = phi( circle::@10/plot::x#5, circle::@11/plot::x#6, circle::@12/plot::x#7, circle::@4/plot::x#0, circle::@6/plot::x#1, circle::@7/plot::x#2, circle::@8/plot::x#3, circle::@9/plot::x#4 )
  [61] if(plot::x#8<0) goto plot::@return
  to:plot::@4
plot::@4: scope:[plot]  from plot
  [62] if(plot::x#8>$13f) goto plot::@return
  to:plot::@3
plot::@3: scope:[plot]  from plot::@4
  [63] if(plot::y#8<0) goto plot::@return
  to:plot::@2
plot::@2: scope:[plot]  from plot::@3
  [64] if(plot::y#8>=$c7+1) goto plot::@return
  to:plot::@1
plot::@1: scope:[plot]  from plot::@2
  [65] plot::$8 = plot::x#8 & $fff8
  [66] plot::location#1 = BITMAP + plot::$8
  [67] plot::$9 = byte0  plot::y#8
  [68] plot::$10 = plot::$9 & 7
  [69] plot::location#2 = plot::location#1 + plot::$10
  [70] plot::$11 = plot::y#8 >> 3
  [71] plot::$15 = plot::$11 << 2
  [72] plot::$16 = plot::$15 + plot::$11
  [73] plot::$12 = plot::$16 << 6
  [74] plot::location#3 = plot::location#2 + plot::$12
  [75] plot::$13 = plot::x#8 & 7
  [76] plot::$14 = *plot::location#3 | bitmask[plot::$13]
  [77] *plot::location#3 = plot::$14
  to:plot::@return
plot::@return: scope:[plot]  from plot plot::@1 plot::@2 plot::@3 plot::@4
  [78] return 
  to:@return
