@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 bitmap_init 
  to:main::@2
main::@2: scope:[main]  from main
  [6] phi()
  [7] call bitmap_clear 
  to:main::vicSelectGfxBank1
main::vicSelectGfxBank1: scope:[main]  from main::@2
  [8] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte) 3
  to:main::vicSelectGfxBank1_toDd001
main::vicSelectGfxBank1_toDd001: scope:[main]  from main::vicSelectGfxBank1
  [9] phi()
  to:main::vicSelectGfxBank1_@1
main::vicSelectGfxBank1_@1: scope:[main]  from main::vicSelectGfxBank1_toDd001
  [10] *((const byte*) CIA2_PORT_A#0) ← (const byte) main::vicSelectGfxBank1_toDd001_return#0
  to:main::toD0181
main::toD0181: scope:[main]  from main::vicSelectGfxBank1_@1
  [11] phi()
  to:main::@1
main::@1: scope:[main]  from main::toD0181
  [12] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
  [13] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
  [14] call clock_start 
  to:main::@3
main::@3: scope:[main]  from main::@1
  [15] phi()
  [16] call splinePlot 
  to:main::@4
main::@4: scope:[main]  from main::@3
  [17] phi()
  [18] call splinePlot 
  to:main::@5
main::@5: scope:[main]  from main::@4
  [19] phi()
  [20] call splinePlot 
  to:main::@6
main::@6: scope:[main]  from main::@5
  [21] phi()
  [22] call splinePlot 
  to:main::@7
main::@7: scope:[main]  from main::@6
  [23] phi()
  [24] call clock 
  [25] (dword) clock::return#2 ← (dword) clock::return#0
  to:main::@8
main::@8: scope:[main]  from main::@7
  [26] (dword~) main::$12 ← (dword) clock::return#2
  [27] (dword) main::cyclecount#0 ← (dword~) main::$12 - (const dword) CLOCKS_PER_INIT#0
  [28] (dword) print_dword_at::dw#0 ← (dword) main::cyclecount#0
  [29] call print_dword_at 
  to:main::@return
main::@return: scope:[main]  from main::@8
  [30] return 
  to:@return
print_dword_at: scope:[print_dword_at]  from main::@8
  [31] (word) print_word_at::w#0 ← > (dword) print_dword_at::dw#0
  [32] call print_word_at 
  to:print_dword_at::@1
print_dword_at::@1: scope:[print_dword_at]  from print_dword_at
  [33] (word) print_word_at::w#1 ← < (dword) print_dword_at::dw#0
  [34] call print_word_at 
  to:print_dword_at::@return
print_dword_at::@return: scope:[print_dword_at]  from print_dword_at::@1
  [35] return 
  to:@return
print_word_at: scope:[print_word_at]  from print_dword_at print_dword_at::@1
  [36] (byte*) print_word_at::at#2 ← phi( print_dword_at/(const byte*) SCREEN#0 print_dword_at::@1/(const byte*) SCREEN#0+(byte) 4 )
  [36] (word) print_word_at::w#2 ← phi( print_dword_at/(word) print_word_at::w#0 print_dword_at::@1/(word) print_word_at::w#1 )
  [37] (byte) print_byte_at::b#0 ← > (word) print_word_at::w#2
  [38] (byte*) print_byte_at::at#0 ← (byte*) print_word_at::at#2
  [39] call print_byte_at 
  to:print_word_at::@1
print_word_at::@1: scope:[print_word_at]  from print_word_at
  [40] (byte) print_byte_at::b#1 ← < (word) print_word_at::w#2
  [41] (byte*) print_byte_at::at#1 ← (byte*) print_word_at::at#2 + (byte) 2
  [42] call print_byte_at 
  to:print_word_at::@return
print_word_at::@return: scope:[print_word_at]  from print_word_at::@1
  [43] return 
  to:@return
print_byte_at: scope:[print_byte_at]  from print_word_at print_word_at::@1
  [44] (byte*) print_byte_at::at#2 ← phi( print_word_at/(byte*) print_byte_at::at#0 print_word_at::@1/(byte*) print_byte_at::at#1 )
  [44] (byte) print_byte_at::b#2 ← phi( print_word_at/(byte) print_byte_at::b#0 print_word_at::@1/(byte) print_byte_at::b#1 )
  [45] (byte~) print_byte_at::$0 ← (byte) print_byte_at::b#2 >> (byte) 4
  [46] (byte) print_char_at::ch#0 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$0)
  [47] (byte*) print_char_at::at#0 ← (byte*) print_byte_at::at#2
  [48] call print_char_at 
  to:print_byte_at::@1
print_byte_at::@1: scope:[print_byte_at]  from print_byte_at
  [49] (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte) $f
  [50] (byte*) print_char_at::at#1 ← (byte*) print_byte_at::at#2 + (byte) 1
  [51] (byte) print_char_at::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$2)
  [52] call print_char_at 
  to:print_byte_at::@return
print_byte_at::@return: scope:[print_byte_at]  from print_byte_at::@1
  [53] return 
  to:@return
print_char_at: scope:[print_char_at]  from print_byte_at print_byte_at::@1
  [54] (byte*) print_char_at::at#2 ← phi( print_byte_at/(byte*) print_char_at::at#0 print_byte_at::@1/(byte*) print_char_at::at#1 )
  [54] (byte) print_char_at::ch#2 ← phi( print_byte_at/(byte) print_char_at::ch#0 print_byte_at::@1/(byte) print_char_at::ch#1 )
  [55] *((byte*) print_char_at::at#2) ← (byte) print_char_at::ch#2
  to:print_char_at::@return
print_char_at::@return: scope:[print_char_at]  from print_char_at
  [56] return 
  to:@return
clock: scope:[clock]  from main::@7
  [57] (dword) clock::return#0 ← (dword) $ffffffff - *((const dword*) CIA2_TIMER_AB#0)
  to:clock::@return
clock::@return: scope:[clock]  from clock
  [58] return 
  to:@return
splinePlot: scope:[splinePlot]  from main::@3 main::@4 main::@5 main::@6
  [59] (signed word) splinePlot::p0_y#4 ← phi( main::@3/(const signed word) main::p0_y#0 main::@4/(const signed word) main::p2_y#0 main::@5/(const signed word) main::p2_y#0 main::@6/(const signed word) main::p4_y#0 )
  [59] (signed word) splinePlot::p2_y#4 ← phi( main::@3/(const signed word) main::p2_y#0 main::@4/(const signed word) main::p4_y#0 main::@5/(const signed word) main::p0_y#0 main::@6/(const signed word) main::p2_y#0 )
  [59] (signed word) splinePlot::p1_y#4 ← phi( main::@3/(const signed word) main::p1a_y#0 main::@4/(const signed word) main::p3a_y#0 main::@5/(const signed word) main::p1b_y#0 main::@6/(const signed word) main::p3b_y#0 )
  [59] (signed word) splinePlot::p0_x#4 ← phi( main::@3/(const signed word) main::p0_x#0 main::@4/(const signed word) main::p2_x#0 main::@5/(const signed word) main::p2_x#0 main::@6/(const signed word) main::p4_x#0 )
  [59] (signed word) splinePlot::p2_x#4 ← phi( main::@3/(const signed word) main::p2_x#0 main::@4/(const signed word) main::p4_x#0 main::@5/(const signed word) main::p0_x#0 main::@6/(const signed word) main::p2_x#0 )
  [59] (signed word) splinePlot::p1_x#4 ← phi( main::@3/(const signed word) main::p1a_x#0 main::@4/(const signed word) main::p3a_x#0 main::@5/(const signed word) main::p1b_x#0 main::@6/(const signed word) main::p3b_x#0 )
  [60] (signed word~) splinePlot::$6 ← (signed word) splinePlot::p1_x#4 << (byte) 1
  [61] (signed word~) splinePlot::$1 ← (signed word) splinePlot::p2_x#4 - (signed word~) splinePlot::$6
  [62] (signed word) splinePlot::a_x#0 ← (signed word~) splinePlot::$1 + (signed word) splinePlot::p0_x#4
  [63] (signed word~) splinePlot::$9 ← (signed word) splinePlot::p1_y#4 << (byte) 1
  [64] (signed word~) splinePlot::$4 ← (signed word) splinePlot::p2_y#4 - (signed word~) splinePlot::$9
  [65] (signed word) splinePlot::a_y#0 ← (signed word~) splinePlot::$4 + (signed word) splinePlot::p0_y#4
  [66] (signed word~) splinePlot::$7 ← (signed word) splinePlot::p0_x#4 << (byte) 1
  [67] (signed word) splinePlot::b_x#0 ← (signed word~) splinePlot::$6 - (signed word~) splinePlot::$7
  [68] (signed word~) splinePlot::$10 ← (signed word) splinePlot::p0_y#4 << (byte) 1
  [69] (signed word) splinePlot::b_y#0 ← (signed word~) splinePlot::$9 - (signed word~) splinePlot::$10
  [70] (signed dword~) splinePlot::$12 ← (signed dword)(signed word) splinePlot::a_x#0
  [71] (signed dword~) splinePlot::$13 ← (signed dword~) splinePlot::$12 << (byte) 8
  [72] (signed dword~) splinePlot::$14 ← (signed dword)(signed word) splinePlot::b_x#0
  [73] (signed dword~) splinePlot::$15 ← (signed dword~) splinePlot::$14 << (byte) 8
  [74] (signed dword~) splinePlot::$16 ← (signed dword~) splinePlot::$15 << (byte) 4
  [75] (signed dword) splinePlot::i_x#0 ← (signed dword~) splinePlot::$13 + (signed dword~) splinePlot::$16
  [76] (signed dword~) splinePlot::$18 ← (signed dword)(signed word) splinePlot::a_y#0
  [77] (signed dword~) splinePlot::$19 ← (signed dword~) splinePlot::$18 << (byte) 8
  [78] (signed dword~) splinePlot::$20 ← (signed dword)(signed word) splinePlot::b_y#0
  [79] (signed dword~) splinePlot::$21 ← (signed dword~) splinePlot::$20 << (byte) 8
  [80] (signed dword~) splinePlot::$22 ← (signed dword~) splinePlot::$21 << (byte) 4
  [81] (signed dword) splinePlot::i_y#0 ← (signed dword~) splinePlot::$19 + (signed dword~) splinePlot::$22
  [82] (signed dword~) splinePlot::$24 ← (signed dword)(signed word) splinePlot::a_x#0
  [83] (signed dword~) splinePlot::$25 ← (signed dword~) splinePlot::$24 << (byte) 8
  [84] (signed dword) splinePlot::j_x#0 ← (signed dword~) splinePlot::$25 << (byte) 1
  [85] (signed dword~) splinePlot::$27 ← (signed dword)(signed word) splinePlot::a_y#0
  [86] (signed dword~) splinePlot::$28 ← (signed dword~) splinePlot::$27 << (byte) 8
  [87] (signed dword) splinePlot::j_y#0 ← (signed dword~) splinePlot::$28 << (byte) 1
  [88] (signed dword~) splinePlot::$30 ← (signed dword)(signed word) splinePlot::p0_x#4
  [89] (signed dword) splinePlot::p_x#0 ← (signed dword~) splinePlot::$30 << (byte) $10
  [90] (signed dword~) splinePlot::$32 ← (signed dword)(signed word) splinePlot::p0_y#4
  [91] (signed dword) splinePlot::p_y#0 ← (signed dword~) splinePlot::$32 << (byte) $10
  to:splinePlot::@1
splinePlot::@1: scope:[splinePlot]  from splinePlot splinePlot::@2
  [92] (byte) splinePlot::n#2 ← phi( splinePlot/(byte) 0 splinePlot::@2/(byte) splinePlot::n#1 )
  [92] (signed dword) splinePlot::i_y#2 ← phi( splinePlot/(signed dword) splinePlot::i_y#0 splinePlot::@2/(signed dword) splinePlot::i_y#1 )
  [92] (signed dword) splinePlot::i_x#2 ← phi( splinePlot/(signed dword) splinePlot::i_x#0 splinePlot::@2/(signed dword) splinePlot::i_x#1 )
  [92] (signed dword) splinePlot::p_y#2 ← phi( splinePlot/(signed dword) splinePlot::p_y#0 splinePlot::@2/(signed dword) splinePlot::p_y#1 )
  [92] (signed dword) splinePlot::p_x#2 ← phi( splinePlot/(signed dword) splinePlot::p_x#0 splinePlot::@2/(signed dword) splinePlot::p_x#1 )
  [93] (word) bitmap_plot::x#0 ← > (signed dword) splinePlot::p_x#2
  [94] (word~) splinePlot::$35 ← > (signed dword) splinePlot::p_y#2
  [95] (byte) bitmap_plot::y#0 ← < (word~) splinePlot::$35
  [96] call bitmap_plot 
  to:splinePlot::@2
splinePlot::@2: scope:[splinePlot]  from splinePlot::@1
  [97] (signed dword) splinePlot::p_x#1 ← (signed dword) splinePlot::p_x#2 + (signed dword) splinePlot::i_x#2
  [98] (signed dword) splinePlot::p_y#1 ← (signed dword) splinePlot::p_y#2 + (signed dword) splinePlot::i_y#2
  [99] (signed dword) splinePlot::i_x#1 ← (signed dword) splinePlot::i_x#2 + (signed dword) splinePlot::j_x#0
  [100] (signed dword) splinePlot::i_y#1 ← (signed dword) splinePlot::i_y#2 + (signed dword) splinePlot::j_y#0
  [101] (byte) splinePlot::n#1 ← ++ (byte) splinePlot::n#2
  [102] if((byte) splinePlot::n#1!=(byte) $11) goto splinePlot::@1
  to:splinePlot::@return
splinePlot::@return: scope:[splinePlot]  from splinePlot::@2
  [103] return 
  to:@return
bitmap_plot: scope:[bitmap_plot]  from splinePlot::@1
  [104] (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)
  [105] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
  [106] (byte*) bitmap_plot::plotter#1 ← (byte*)(word) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1
  [107] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0
  [108] *((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
  [109] return 
  to:@return
clock_start: scope:[clock_start]  from main::@1
  [110] *((const byte*) CIA2_TIMER_A_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_CONTINUOUS#0
  [111] *((const byte*) CIA2_TIMER_B_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A#0
  [112] *((const dword*) CIA2_TIMER_AB#0) ← (dword) $ffffffff
  [113] *((const byte*) CIA2_TIMER_B_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_START#0|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A#0
  [114] *((const byte*) CIA2_TIMER_A_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_START#0
  to:clock_start::@return
clock_start::@return: scope:[clock_start]  from clock_start
  [115] return 
  to:@return
bitmap_clear: scope:[bitmap_clear]  from main::@2
  [116] phi()
  [117] call memset 
  to:bitmap_clear::@1
bitmap_clear::@1: scope:[bitmap_clear]  from bitmap_clear
  [118] phi()
  [119] call memset 
  to:bitmap_clear::@return
bitmap_clear::@return: scope:[bitmap_clear]  from bitmap_clear::@1
  [120] return 
  to:@return
memset: scope:[memset]  from bitmap_clear bitmap_clear::@1
  [121] (byte) memset::c#3 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
  [121] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) BITMAP_SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP_GRAPHICS#0 )
  [121] (word) memset::num#2 ← phi( bitmap_clear/(word) $3e8 bitmap_clear::@1/(word) $1f40 )
  [122] if((word) memset::num#2<=(byte) 0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [123] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2
  [124] (byte*~) memset::dst#3 ← (byte*)(void*) memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@2
  [125] (byte*) memset::dst#2 ← phi( memset::@1/(byte*~) memset::dst#3 memset::@2/(byte*) memset::dst#1 )
  [126] *((byte*) memset::dst#2) ← (byte) memset::c#3
  [127] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
  [128] if((byte*) memset::dst#1!=(byte*) memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [129] return 
  to:@return
bitmap_init: scope:[bitmap_init]  from main
  [130] phi()
  to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init]  from bitmap_init bitmap_init::@2
  [131] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
  [131] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
  [132] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
  [133] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
  [134] 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
  [135] phi()
  to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init]  from bitmap_init::@1 bitmap_init::@6
  [136] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
  [137] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
  [138] 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
  [139] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(const byte*) BITMAP_GRAPHICS#0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
  [139] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
  [140] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
  [141] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2
  [142] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$7 | (byte~) bitmap_init::$4
  [143] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5
  [144] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2
  [145] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6
  [146] 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
  [147] (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
  [148] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
  [149] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
  [150] 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
  [151] return 
  to:@return
