@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] (byte) irq_idx#0 ← (byte) 0
  to:@2
@2: scope:[]  from @1
  [2] phi()
  [3] call main 
  to:@end
@end: scope:[]  from @2
  [4] phi()
main: scope:[main]  from @2
  asm { sei  }
  [6] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0
  [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte) $7f
  [8] *((const byte*) RASTER#0) ← (byte) $60
  [9] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0
  [10] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
  [11] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) table_driven_irq()
  asm { cli  }
  to:main::@return
main::@return: scope:[main]  from main
  [13] return 
  to:@return
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) irq_idx#4 ← phi( table_driven_irq/(byte) irq_idx#0 table_driven_irq::@2/(byte) irq_idx#1 table_driven_irq::@3/(byte) irq_idx#1 )
  [16] (byte) table_driven_irq::idx#0 ← *((const byte[]) IRQ_CHANGE_IDX#0 + (byte) irq_idx#4)
  [17] (byte) table_driven_irq::val#0 ← *((const byte[]) IRQ_CHANGE_VAL#0 + (byte) irq_idx#4)
  [18] (byte) irq_idx#1 ← ++ (byte) irq_idx#4
  [19] if((byte) table_driven_irq::idx#0<(const byte) VIC_SIZE#0) goto table_driven_irq::@2
  to:table_driven_irq::@4
table_driven_irq::@4: scope:[table_driven_irq]  from table_driven_irq::@1
  [20] if((byte) table_driven_irq::idx#0<(const byte) VIC_SIZE#0+(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
  [21] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
  [22] *((const byte*) RASTER#0) ← (byte) table_driven_irq::val#0
  [23] if((byte) table_driven_irq::val#0>=*((const byte*) RASTER#0)) goto table_driven_irq::@return
  to:table_driven_irq::@6
table_driven_irq::@6: scope:[table_driven_irq]  from table_driven_irq::@5
  [24] (byte) irq_idx#2 ← (byte) 0
  to:table_driven_irq::@return
table_driven_irq::@return: scope:[table_driven_irq]  from table_driven_irq::@5 table_driven_irq::@6
  [25] (byte) irq_idx#3 ← phi( table_driven_irq::@5/(byte) irq_idx#1 table_driven_irq::@6/(byte) irq_idx#2 )
  [26] return 
  to:@return
table_driven_irq::@3: scope:[table_driven_irq]  from table_driven_irq::@4
  [27] *((const byte*) SCREEN#0+-(const byte) VIC_SIZE#0+(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
  [28] *((const byte*) VIC_BASE#0 + (byte) table_driven_irq::idx#0) ← (byte) table_driven_irq::val#0
  to:table_driven_irq::@1
