
void main()
main: scope:[main]  from
  asm { sei  }
  [1] *SPRITES_ENABLE = 1
  [2] *SPRITES_YPOS = $64
  [3] *SPRITES_XPOS = $64
  [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40
  [5] call saveZeropage
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call sinZeropage
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi()
  [9] call animSprite
  to:main::@3
main::@3: scope:[main]  from main::@2
  [10] phi()
  [11] call restoreZeropage
  to:main::@return
main::@return: scope:[main]  from main::@3
  [12] return 
  to:@return

void saveZeropage()
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
  [14] return 
  to:@return

void sinZeropage()
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
  [16] return 
  to:@return

void animSprite()
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
  [18] return 
  to:@return

void restoreZeropage()
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
  [20] return 
  to:@return
