@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
  asm { sei  }
  [5] *((const byte*) SPRITES_ENABLE#0) ← (byte) 1
  [6] *((const byte*) SPRITES_YPOS#0) ← (byte) $64
  [7] *((const byte*) SPRITES_XPOS#0) ← (byte) $64
  [8] *((const byte*) SCREEN#0+(const word) SPRITE_PTRS#0) ← (byte)(const byte[$40]) SPRITE#0/(byte) $40
  [9] call saveZeropage 
  to:main::@1
main::@1: scope:[main]  from main
  [10] phi()
  [11] call sinZeropage 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [12] phi()
  [13] call animSprite 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [14] phi()
  [15] call restoreZeropage 
  to:main::@return
main::@return: scope:[main]  from main::@3
  [16] return 
  to:@return
restoreZeropage: scope:[restoreZeropage]  from main::@3
  asm { ldx#0 !: ldaZP_STORAGE,x sta$00,x inx bne!-  }
  to:restoreZeropage::@return
restoreZeropage::@return: scope:[restoreZeropage]  from restoreZeropage
  [18] return 
  to:@return
animSprite: scope:[animSprite]  from main::@2
  kickasm() {{ ldx #$00
    repeat:
        lda #$fe
    !:
        cmp $d012
        bne !-
        lda #$ff
    !:
        cmp $d012
        bne !-
        .break
        lda $00,x
        clc
        adc #$38
        sta $d000
        lda #0
        adc #0
        sta $d010
        inx
        jmp repeat
     }}
  to:animSprite::@return
animSprite::@return: scope:[animSprite]  from animSprite
  [20] return 
  to:@return
sinZeropage: scope:[sinZeropage]  from main::@1
  asm { ldx#0 !: ldaSINTABLE,x sta$00,x inx bne!-  }
  to:sinZeropage::@return
sinZeropage::@return: scope:[sinZeropage]  from sinZeropage
  [22] return 
  to:@return
saveZeropage: scope:[saveZeropage]  from main
  asm { ldx#0 !: lda$00,x staZP_STORAGE,x inx bne!-  }
  to:saveZeropage::@return
saveZeropage::@return: scope:[saveZeropage]  from saveZeropage
  [24] return 
  to:@return
