@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 clock_start 
  to:main::@1
main::@1: scope:[main]  from main main::@2
  [6] phi()
  [7] call clock 
  [8] (dword) clock::return#2 ← (dword) clock::return#0
  to:main::@2
main::@2: scope:[main]  from main::@1
  [9] (dword) print_dword_at::dw#0 ← (dword) clock::return#2
  [10] call print_dword_at 
  to:main::@1

(void()) print_dword_at((dword) print_dword_at::dw , (byte*) print_dword_at::at)
print_dword_at: scope:[print_dword_at]  from main::@2
  [11] (word) print_word_at::w#0 ← > (dword) print_dword_at::dw#0
  [12] call print_word_at 
  to:print_dword_at::@1
print_dword_at::@1: scope:[print_dword_at]  from print_dword_at
  [13] (word) print_word_at::w#1 ← < (dword) print_dword_at::dw#0
  [14] call print_word_at 
  to:print_dword_at::@return
print_dword_at::@return: scope:[print_dword_at]  from print_dword_at::@1
  [15] return 
  to:@return

(void()) print_word_at((word) print_word_at::w , (byte*) print_word_at::at)
print_word_at: scope:[print_word_at]  from print_dword_at print_dword_at::@1
  [16] (byte*) print_word_at::at#2 ← phi( print_dword_at/(const byte*) SCREEN print_dword_at::@1/(const byte*) SCREEN+(byte) 4 )
  [16] (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 )
  [17] (byte) print_byte_at::b#0 ← > (word) print_word_at::w#2
  [18] (byte*) print_byte_at::at#0 ← (byte*) print_word_at::at#2
  [19] call print_byte_at 
  to:print_word_at::@1
print_word_at::@1: scope:[print_word_at]  from print_word_at
  [20] (byte) print_byte_at::b#1 ← < (word) print_word_at::w#2
  [21] (byte*) print_byte_at::at#1 ← (byte*) print_word_at::at#2 + (byte) 2
  [22] call print_byte_at 
  to:print_word_at::@return
print_word_at::@return: scope:[print_word_at]  from print_word_at::@1
  [23] return 
  to:@return

(void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at)
print_byte_at: scope:[print_byte_at]  from print_word_at print_word_at::@1
  [24] (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 )
  [24] (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 )
  [25] (byte~) print_byte_at::$0 ← (byte) print_byte_at::b#2 >> (byte) 4
  [26] (byte) print_char_at::ch#0 ← *((const byte*) print_hextab + (byte~) print_byte_at::$0)
  [27] (byte*) print_char_at::at#0 ← (byte*) print_byte_at::at#2
  [28] call print_char_at 
  to:print_byte_at::@1
print_byte_at::@1: scope:[print_byte_at]  from print_byte_at
  [29] (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte) $f
  [30] (byte*) print_char_at::at#1 ← (byte*) print_byte_at::at#2 + (byte) 1
  [31] (byte) print_char_at::ch#1 ← *((const byte*) print_hextab + (byte~) print_byte_at::$2)
  [32] call print_char_at 
  to:print_byte_at::@return
print_byte_at::@return: scope:[print_byte_at]  from print_byte_at::@1
  [33] return 
  to:@return

(void()) print_char_at((byte) print_char_at::ch , (byte*) print_char_at::at)
print_char_at: scope:[print_char_at]  from print_byte_at print_byte_at::@1
  [34] (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 )
  [34] (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 )
  [35] *((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
  [36] return 
  to:@return

(dword()) clock()
clock: scope:[clock]  from main::@1
  [37] (dword) clock::return#0 ← (dword) $ffffffff - *((const dword*) CIA2_TIMER_AB)
  to:clock::@return
clock::@return: scope:[clock]  from clock
  [38] return 
  to:@return

(void()) clock_start()
clock_start: scope:[clock_start]  from main
  [39] *((const byte*) CIA2_TIMER_A_CONTROL) ← (byte) 0
  [40] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
  [41] *((const dword*) CIA2_TIMER_AB) ← (dword) $ffffffff
  [42] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
  [43] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START
  to:clock_start::@return
clock_start::@return: scope:[clock_start]  from clock_start
  [44] return 
  to:@return
