@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
  asm { sei  }
  [5] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0
  [6] *((const byte*) BGCOL#0) ← (const byte) BLACK#0
  [7] call fillscreen 
  to:main::@4
main::@4: scope:[main]  from main
  [8] phi()
  [9] call fillscreen 
  to:main::@5
main::@5: scope:[main]  from main::@4
  [10] phi()
  [11] call fillscreen 
  to:main::@6
main::@6: scope:[main]  from main::@5
  [12] phi()
  [13] call fillscreen 
  to:main::@7
main::@7: scope:[main]  from main::@6
  [14] phi()
  [15] call sid_rnd_init 
  to:main::@8
main::@8: scope:[main]  from main::@7
  [16] phi()
  [17] call makecharset 
  to:main::@1
main::@1: scope:[main]  from main::@3 main::@8
  [18] phi()
  [19] call fire 
  to:main::toD0181
main::toD0181: scope:[main]  from main::@1
  [20] phi()
  to:main::@2
main::@2: scope:[main]  from main::toD0181
  [21] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
  [22] call fire 
  to:main::toD0182
main::toD0182: scope:[main]  from main::@2
  [23] phi()
  to:main::@3
main::@3: scope:[main]  from main::toD0182
  [24] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0
  to:main::@1
fire: scope:[fire]  from main::@1 main::@2
  [25] (byte*) fire::screen#0 ← phi( main::@1/(const byte*) SCREEN1#0 main::@2/(const byte*) SCREEN2#0 )
  to:fire::@1_1
fire::@1_1: scope:[fire]  from fire
  [26] (byte*~) fire::screen#19 ← (byte*) fire::screen#0
  to:fire::@2
fire::@2: scope:[fire]  from fire::@1 fire::@1_1
  [27] (byte*) fire::screen#11 ← phi( fire::@1/(byte*) fire::screen#2 fire::@1_1/(byte*~) fire::screen#19 )
  [27] (byte*) fire::buffer#11 ← phi( fire::@1/(byte*) fire::buffer#2 fire::@1_1/(const byte*) BUFFER#0 )
  [28] (byte~) fire::$4 ← *((byte*) fire::buffer#11 + (byte)(number) $28-(number) 1) + *((byte*) fire::buffer#11 + (byte)(number) $28-(number) 1)
  [29] (byte~) fire::$5 ← (byte~) fire::$4 + *((byte*) fire::buffer#11 + (byte) $28)
  [30] (byte~) fire::$6 ← (byte~) fire::$5 + *((byte*) fire::buffer#11 + (byte) $29)
  [31] (byte) fire::c#0 ← (byte~) fire::$6 >> (byte) 2
  [32] if((byte) fire::c#0<(byte) 2+(byte) 1) goto fire::@4
  to:fire::@5
fire::@5: scope:[fire]  from fire::@2
  [33] (byte) fire::c#1 ← (byte) fire::c#0 - (byte) 3
  to:fire::@4
fire::@4: scope:[fire]  from fire::@2 fire::@5
  [34] (byte) fire::c#2 ← phi( fire::@2/(byte) fire::c#0 fire::@5/(byte) fire::c#1 )
  [35] *((byte*) fire::buffer#11) ← (byte) fire::c#2
  [36] *((byte*) fire::screen#11) ← *((byte*) fire::buffer#11)
  [37] (byte*) fire::screen#2 ← ++ (byte*) fire::screen#11
  [38] (byte*) fire::buffer#2 ← ++ (byte*) fire::buffer#11
  to:fire::@1
fire::@1: scope:[fire]  from fire::@4
  [39] if((byte*) fire::buffer#2!=(const byte*) BUFFER#0+(word)(number) $18*(number) $28) goto fire::@2
  to:fire::@3
fire::@3: scope:[fire]  from fire::@1
  [40] (byte*) fire::screen#1 ← (byte*) fire::screen#0 + (word)(number) $18*(number) $28
  to:fire::@7
fire::@7: scope:[fire]  from fire::@3 fire::@6
  [41] (byte*) fire::screen#15 ← phi( fire::@6/(byte*) fire::screen#10 fire::@3/(byte*) fire::screen#1 )
  [41] (byte*) fire::buffer#15 ← phi( fire::@6/(byte*) fire::buffer#10 fire::@3/(const byte*) BUFFER#0+(word)(number) $18*(number) $28 )
  [42] call sid_rnd 
  [43] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
  to:fire::@8
fire::@8: scope:[fire]  from fire::@7
  [44] (byte~) fire::$12 ← (byte) sid_rnd::return#2
  [45] (byte~) fire::$13 ← (byte~) fire::$12 >> (byte) 4
  [46] (byte~) fire::$14 ← (byte) $30 + (byte~) fire::$13
  [47] *((byte*) fire::buffer#15) ← (byte~) fire::$14
  [48] *((byte*) fire::screen#15) ← *((byte*) fire::buffer#15)
  [49] (byte*) fire::screen#10 ← ++ (byte*) fire::screen#15
  [50] (byte*) fire::buffer#10 ← ++ (byte*) fire::buffer#15
  to:fire::@6
fire::@6: scope:[fire]  from fire::@8
  [51] if((byte*) fire::buffer#10!=(const byte*) BUFFER#0+(word)(number) $19*(number) $28) goto fire::@7
  to:fire::@return
fire::@return: scope:[fire]  from fire::@6
  [52] return 
  to:@return
sid_rnd: scope:[sid_rnd]  from fire::@7
  [53] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0)
  to:sid_rnd::@return
sid_rnd::@return: scope:[sid_rnd]  from sid_rnd
  [54] return 
  to:@return
makecharset: scope:[makecharset]  from main::@8
  [55] phi()
  to:makecharset::@2
makecharset::@2: scope:[makecharset]  from makecharset makecharset::@1
  [56] (byte*) makecharset::font#4 ← phi( makecharset::@1/(byte*) makecharset::font#1 makecharset/(const byte*) CHARSET#0 )
  [57] *((byte*) makecharset::font#4) ← (byte) 0
  [58] (byte*) makecharset::font#1 ← ++ (byte*) makecharset::font#4
  to:makecharset::@1
makecharset::@1: scope:[makecharset]  from makecharset::@2
  [59] if((byte*) makecharset::font#1!=(const byte*) CHARSET#0+(byte)(number) 1*(number) 8) goto makecharset::@2
  to:makecharset::@4
makecharset::@4: scope:[makecharset]  from makecharset::@1 makecharset::@3
  [60] (byte*) makecharset::font1#4 ← phi( makecharset::@3/(byte*) makecharset::font1#1 makecharset::@1/(const byte*) CHARSET#0+(word)(number) $40*(number) 8 )
  [61] *((byte*) makecharset::font1#4) ← (byte) $ff
  [62] (byte*) makecharset::font1#1 ← ++ (byte*) makecharset::font1#4
  to:makecharset::@3
makecharset::@3: scope:[makecharset]  from makecharset::@4
  [63] if((byte*) makecharset::font1#1!=(const byte*) CHARSET#0+(word)(number) $100*(number) 8) goto makecharset::@4
  to:makecharset::@6
makecharset::@6: scope:[makecharset]  from makecharset::@3 makecharset::@5
  [64] (byte) makecharset::c#17 ← phi( makecharset::@5/(byte) makecharset::c#1 makecharset::@3/(byte) 0 )
  to:makecharset::@8
makecharset::@8: scope:[makecharset]  from makecharset::@6 makecharset::@7
  [65] (byte) makecharset::bc#10 ← phi( makecharset::@7/(byte) makecharset::bc#12 makecharset::@6/(byte) 0 )
  [65] (byte) makecharset::i#13 ← phi( makecharset::@7/(byte) makecharset::i#1 makecharset::@6/(byte) 0 )
  to:makecharset::@11
makecharset::@11: scope:[makecharset]  from makecharset::@10 makecharset::@8
  [66] (byte) makecharset::b#8 ← phi( makecharset::@10/(byte) makecharset::b#2 makecharset::@8/(byte) 0 )
  [66] (byte) makecharset::bc#13 ← phi( makecharset::@10/(byte) makecharset::bc#12 makecharset::@8/(byte) makecharset::bc#10 )
  [66] (byte) makecharset::ii#6 ← phi( makecharset::@10/(byte) makecharset::ii#1 makecharset::@8/(byte) 0 )
  [67] (byte) makecharset::bc#1 ← (byte) makecharset::bc#13 + (byte) makecharset::c#17
  [68] if((byte) makecharset::bc#1<(byte) $3f+(byte) 1) goto makecharset::@13
  to:makecharset::@14
makecharset::@14: scope:[makecharset]  from makecharset::@11
  [69] (byte) makecharset::bc#2 ← (byte) makecharset::bc#1 - (byte) $40
  [70] (byte~) makecharset::$11 ← (byte) makecharset::i#13 & (byte) 1
  [71] (byte~) makecharset::$12 ← (byte) makecharset::ii#6 + (byte~) makecharset::$11
  [72] (byte~) makecharset::$13 ← (byte~) makecharset::$12 & (byte) 7
  [73] (byte) makecharset::b#1 ← (byte) makecharset::b#8 + *((const byte[8]) makecharset::bittab#0 + (byte~) makecharset::$13)
  to:makecharset::@13
makecharset::@13: scope:[makecharset]  from makecharset::@11 makecharset::@14
  [74] (byte) makecharset::b#2 ← phi( makecharset::@11/(byte) makecharset::b#8 makecharset::@14/(byte) makecharset::b#1 )
  [74] (byte) makecharset::bc#12 ← phi( makecharset::@11/(byte) makecharset::bc#1 makecharset::@14/(byte) makecharset::bc#2 )
  [75] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#6
  to:makecharset::@10
makecharset::@10: scope:[makecharset]  from makecharset::@13
  [76] if((byte) makecharset::ii#1<(byte) 8) goto makecharset::@11
  to:makecharset::@12
makecharset::@12: scope:[makecharset]  from makecharset::@10
  [77] (word~) makecharset::$15 ← (word)(byte) makecharset::c#17
  [78] (word~) makecharset::$16 ← (word~) makecharset::$15 << (byte) 3
  [79] (word~) makecharset::$17 ← (word~) makecharset::$16 + (byte) makecharset::i#13
  [80] (byte*~) makecharset::$18 ← (const byte*) CHARSET#0+(byte)(number) 1*(number) 8 + (word~) makecharset::$17
  [81] *((byte*~) makecharset::$18) ← (byte) makecharset::b#2
  [82] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#13
  to:makecharset::@7
makecharset::@7: scope:[makecharset]  from makecharset::@12
  [83] if((byte) makecharset::i#1<(byte) 8) goto makecharset::@8
  to:makecharset::@9
makecharset::@9: scope:[makecharset]  from makecharset::@7
  [84] (byte) makecharset::c#1 ← ++ (byte) makecharset::c#17
  to:makecharset::@5
makecharset::@5: scope:[makecharset]  from makecharset::@9
  [85] if((byte) makecharset::c#1<(byte) $40) goto makecharset::@6
  to:makecharset::@return
makecharset::@return: scope:[makecharset]  from makecharset::@5
  [86] return 
  to:@return
sid_rnd_init: scope:[sid_rnd_init]  from main::@7
  [87] *((const word*) SID_VOICE3_FREQ#0) ← (word) $ffff
  [88] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
  to:sid_rnd_init::@return
sid_rnd_init::@return: scope:[sid_rnd_init]  from sid_rnd_init
  [89] return 
  to:@return
fillscreen: scope:[fillscreen]  from main main::@4 main::@5 main::@6
  [90] (byte*) fillscreen::screen#6 ← phi( main/(const byte*) BUFFER#0 main::@5/(const byte*) SCREEN2#0 main::@6/(const byte*) COLS#0 main::@4/(const byte*) SCREEN1#0 )
  [90] (byte) fillscreen::fill#5 ← phi( main/(byte) 0 main::@5/(byte) 0 main::@6/(const byte) YELLOW#0 main::@4/(byte) 0 )
  to:fillscreen::@1
fillscreen::@1: scope:[fillscreen]  from fillscreen fillscreen::@1
  [91] (word) fillscreen::i#2 ← phi( fillscreen/(word) 0 fillscreen::@1/(word) fillscreen::i#1 )
  [91] (byte*) fillscreen::screen#5 ← phi( fillscreen/(byte*) fillscreen::screen#6 fillscreen::@1/(byte*) fillscreen::screen#4 )
  [92] *((byte*) fillscreen::screen#5) ← (byte) fillscreen::fill#5
  [93] (byte*) fillscreen::screen#4 ← ++ (byte*) fillscreen::screen#5
  [94] (word) fillscreen::i#1 ← ++ (word) fillscreen::i#2
  [95] if((word) fillscreen::i#1!=(word) $3e8) goto fillscreen::@1
  to:fillscreen::@return
fillscreen::@return: scope:[fillscreen]  from fillscreen::@1
  [96] return 
  to:@return
