@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] (byte) frame_cnt#0 ← (byte) 1
  to:@2
@2: scope:[]  from @1
  [2] phi()
  [3] call main 
  to:@end
@end: scope:[]  from @2
  [4] phi()
main: scope:[main]  from @2
  [5] phi()
  [6] call bitmap_init 
  to:main::@8
main::@8: scope:[main]  from main
  [7] phi()
  [8] call bitmap_clear 
  to:main::@9
main::@9: scope:[main]  from main::@8
  [9] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
  to:main::toD0181
main::toD0181: scope:[main]  from main::@9
  [10] phi()
  to:main::@7
main::@7: scope:[main]  from main::toD0181
  [11] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
  [12] call init_irq 
  to:main::@1
main::@1: scope:[main]  from main::@4 main::@7
  [13] (byte) main::vy#2 ← phi( main::@7/(byte) 1 main::@4/(byte) main::vy#8 )
  [13] (word) main::vx#2 ← phi( main::@7/(byte) 1 main::@4/(word) main::vx#6 )
  [13] (byte) main::y#2 ← phi( main::@7/(byte) 0 main::@4/(byte) main::y#1 )
  [13] (word) main::x#2 ← phi( main::@7/(byte) 0 main::@4/(word) main::x#1 )
  to:main::@2
main::@2: scope:[main]  from main::@1
  [14] (word) bitmap_plot::x#0 ← (word) main::x#2
  [15] (byte) bitmap_plot::y#0 ← (byte) main::y#2
  [16] call bitmap_plot 
  to:main::@10
main::@10: scope:[main]  from main::@2
  [17] (word) main::x#1 ← (word) main::x#2 + (word) main::vx#2
  [18] (byte) main::y#1 ← (byte) main::y#2 + (byte) main::vy#2
  [19] if((word) main::x#1==(word) $13f) goto main::@5
  to:main::@11
main::@11: scope:[main]  from main::@10
  [20] if((word) main::x#1!=(byte) 0) goto main::@3
  to:main::@5
main::@5: scope:[main]  from main::@10 main::@11
  [21] (word) main::vx#1 ← - (word) main::vx#2
  to:main::@3
main::@3: scope:[main]  from main::@11 main::@5
  [22] (word) main::vx#6 ← phi( main::@11/(word) main::vx#2 main::@5/(word) main::vx#1 )
  [23] if((byte) main::y#1==(byte) $c7) goto main::@6
  to:main::@12
main::@12: scope:[main]  from main::@3
  [24] if((byte) main::y#1!=(byte) 0) goto main::@4
  to:main::@6
main::@6: scope:[main]  from main::@12 main::@3
  [25] (byte) main::vy#1 ← - (byte) main::vy#2
  to:main::@4
main::@4: scope:[main]  from main::@12 main::@6
  [26] (byte) main::vy#8 ← phi( main::@12/(byte) main::vy#2 main::@6/(byte) main::vy#1 )
  [27] *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0) ← ++ *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0)
  to:main::@1
bitmap_plot: scope:[bitmap_plot]  from main::@2
  [28] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0)
  [29] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
  [30] (byte*) bitmap_plot::plotter#1 ← (byte*)(word) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1
  [31] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0
  [32] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2)
  to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
  [33] return 
  to:@return
init_irq: scope:[init_irq]  from main::@7
  asm { sei  }
  [35] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
  [36] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0
  [37] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0
  [38] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte) $80
  [39] *((const byte*) RASTER#0) ← (byte) 0
  [40] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0
  [41] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq()
  asm { cli  }
  to:init_irq::@return
init_irq::@return: scope:[init_irq]  from init_irq
  [43] return 
  to:@return
bitmap_clear: scope:[bitmap_clear]  from main::@8
  [44] phi()
  [45] call memset 
  to:bitmap_clear::@1
bitmap_clear::@1: scope:[bitmap_clear]  from bitmap_clear
  [46] phi()
  [47] call memset 
  to:bitmap_clear::@return
bitmap_clear::@return: scope:[bitmap_clear]  from bitmap_clear::@1
  [48] return 
  to:@return
memset: scope:[memset]  from bitmap_clear bitmap_clear::@1
  [49] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
  [49] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
  [49] (word) memset::num#2 ← phi( bitmap_clear/(word) $3e8 bitmap_clear::@1/(word) $1f40 )
  [50] if((word) memset::num#2<=(byte) 0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [51] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2
  [52] (byte*~) memset::dst#4 ← (byte*)(void*) memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [53] (byte*) memset::dst#2 ← phi( memset::@1/(byte*~) memset::dst#4 memset::@3/(byte*) memset::dst#1 )
  [54] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [55] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [56] *((byte*) memset::dst#2) ← (byte) memset::c#4
  [57] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
  to:memset::@2
bitmap_init: scope:[bitmap_init]  from main
  [58] phi()
  to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init]  from bitmap_init bitmap_init::@2
  [59] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
  [59] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
  [60] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
  [61] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
  [62] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6
  to:bitmap_init::@2
bitmap_init::@6: scope:[bitmap_init]  from bitmap_init::@1
  [63] phi()
  to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init]  from bitmap_init::@1 bitmap_init::@6
  [64] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
  [65] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
  [66] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1
  to:bitmap_init::@3
bitmap_init::@3: scope:[bitmap_init]  from bitmap_init::@2 bitmap_init::@4
  [67] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(const byte*) BITMAP#0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
  [67] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
  [68] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
  [69] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2
  [70] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$7 | (byte~) bitmap_init::$4
  [71] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5
  [72] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2
  [73] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6
  [74] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@4
  to:bitmap_init::@5
bitmap_init::@5: scope:[bitmap_init]  from bitmap_init::@3
  [75] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8
  to:bitmap_init::@4
bitmap_init::@4: scope:[bitmap_init]  from bitmap_init::@3 bitmap_init::@5
  [76] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
  [77] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
  [78] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3
  to:bitmap_init::@return
bitmap_init::@return: scope:[bitmap_init]  from bitmap_init::@4
  [79] return 
  to:@return
irq: scope:[irq]  from
  [80] *((const byte*) BGCOL#0) ← (const byte) WHITE#0
  [81] if((byte) 0==(byte) frame_cnt#0) goto irq::@1
  to:irq::@2
irq::@2: scope:[irq]  from irq
  [82] (byte) frame_cnt#1 ← ++ (byte) frame_cnt#0
  to:irq::@1
irq::@1: scope:[irq]  from irq irq::@2
  [83] (byte) frame_cnt#10 ← phi( irq/(byte) frame_cnt#0 irq::@2/(byte) frame_cnt#1 )
  [84] *((const byte*) BGCOL#0) ← (const byte) BLACK#0
  [85] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
  to:irq::@return
irq::@return: scope:[irq]  from irq::@1
  [86] return 
  to:@return
