@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] (byte) irq_idx ← (byte) 0
  to:@2
@2: scope:[]  from @1
  [2] phi()
  [3] call main 
  to:@end
@end: scope:[]  from @2
  [4] phi()

(void()) main()
main: scope:[main]  from @2
  asm { sei  }
  [6] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR
  [7] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f
  [8] *((const byte*) RASTER) ← (byte) $60
  [9] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER
  [10] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER
  [11] *((const void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) table_driven_irq()
  asm { cli  }
  to:main::@return
main::@return: scope:[main]  from main
  [13] return 
  to:@return

interrupt(KERNEL_MIN)(void()) table_driven_irq()
table_driven_irq: scope:[table_driven_irq]  from
  [14] phi()
  to:table_driven_irq::@1
table_driven_irq::@1: scope:[table_driven_irq]  from table_driven_irq table_driven_irq::@2 table_driven_irq::@3
  [15] (byte) table_driven_irq::idx#0 ← *((const byte*) IRQ_CHANGE_IDX + (byte) irq_idx)
  [16] (byte) table_driven_irq::val#0 ← *((const byte*) IRQ_CHANGE_VAL + (byte) irq_idx)
  [17] (byte) irq_idx ← ++ (byte) irq_idx
  [18] if((byte) table_driven_irq::idx#0<(const byte) VIC_SIZE) goto table_driven_irq::@2
  to:table_driven_irq::@4
table_driven_irq::@4: scope:[table_driven_irq]  from table_driven_irq::@1
  [19] if((byte) table_driven_irq::idx#0<(const byte) VIC_SIZE+(byte) 8) goto table_driven_irq::@3
  to:table_driven_irq::@5
table_driven_irq::@5: scope:[table_driven_irq]  from table_driven_irq::@4
  [20] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER
  [21] *((const byte*) RASTER) ← (byte) table_driven_irq::val#0
  [22] if((byte) table_driven_irq::val#0>=*((const byte*) RASTER)) goto table_driven_irq::@return
  to:table_driven_irq::@6
table_driven_irq::@6: scope:[table_driven_irq]  from table_driven_irq::@5
  [23] (byte) irq_idx ← (byte) 0
  to:table_driven_irq::@return
table_driven_irq::@return: scope:[table_driven_irq]  from table_driven_irq::@5 table_driven_irq::@6
  [24] return 
  to:@return
table_driven_irq::@3: scope:[table_driven_irq]  from table_driven_irq::@4
  [25] *((const byte*) SCREEN+-(const byte) VIC_SIZE+(word) $3f8 + (byte) table_driven_irq::idx#0) ← (byte) table_driven_irq::val#0
  to:table_driven_irq::@1
table_driven_irq::@2: scope:[table_driven_irq]  from table_driven_irq::@1
  [26] *((const byte*) VIC_BASE + (byte) table_driven_irq::idx#0) ← (byte) table_driven_irq::val#0
  to:table_driven_irq::@1
