@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
  [4] phi()
  [5] call init 
  to:main::@1
main::@1: scope:[main]  from main main::@1 main::@2
  [6] (byte) sin_idx_y#13 ← phi( main::@1/(byte) sin_idx_y#13 main/(byte) 0 main::@2/(byte) sin_idx_y#11 )
  [6] (byte) sin_idx_x#13 ← phi( main::@1/(byte) sin_idx_x#13 main/(byte) 0 main::@2/(byte) sin_idx_x#11 )
  [7] if(*((const byte*) RASTER#0)!=(byte) $ff) goto main::@1
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi()
  [9] call anim 
  to:main::@1
anim: scope:[anim]  from main::@2
  [10] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
  [11] (byte) anim::xidx#0 ← (byte) sin_idx_x#13
  [12] (byte) anim::yidx#0 ← (byte) sin_idx_y#13
  to:anim::@3
anim::@3: scope:[anim]  from anim anim::@5
  [13] (byte) anim::j#2 ← phi( anim/(byte) 0 anim::@5/(byte) anim::j#1 )
  [13] (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@5/(byte) anim::yidx#6 )
  [13] (byte) anim::j2#2 ← phi( anim/(byte) $c anim::@5/(byte) anim::j2#1 )
  [13] (byte) anim::x_msb#2 ← phi( anim/(byte) 0 anim::@5/(byte) anim::x_msb#1 )
  [13] (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@5/(byte) anim::xidx#5 )
  [14] (word) anim::x#0 ← (word) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3)
  [15] (byte~) anim::$6 ← (byte) anim::x_msb#2 << (byte) 1
  [16] (byte~) anim::$7 ← > (word) anim::x#0
  [17] (byte) anim::x_msb#1 ← (byte~) anim::$6 | (byte~) anim::$7
  [18] (byte~) anim::$9 ← < (word) anim::x#0
  [19] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#2) ← (byte~) anim::$9
  [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3)
  [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte) $a
  [22] if((byte) anim::xidx#1<(const byte) sinlen_x#0) goto anim::@4
  to:anim::@6
anim::@6: scope:[anim]  from anim::@3
  [23] (byte) anim::xidx#2 ← (byte) anim::xidx#1 - (const byte) sinlen_x#0
  to:anim::@4
anim::@4: scope:[anim]  from anim::@3 anim::@6
  [24] (byte) anim::xidx#5 ← phi( anim::@3/(byte) anim::xidx#1 anim::@6/(byte) anim::xidx#2 )
  [25] (byte) anim::yidx#1 ← (byte) anim::yidx#3 + (byte) 8
  [26] if((byte) anim::yidx#1<(const byte) sinlen_y#0) goto anim::@5
  to:anim::@7
anim::@7: scope:[anim]  from anim::@4
  [27] (byte) anim::yidx#2 ← (byte) anim::yidx#1 - (const byte) sinlen_y#0
  to:anim::@5
anim::@5: scope:[anim]  from anim::@4 anim::@7
  [28] (byte) anim::yidx#6 ← phi( anim::@4/(byte) anim::yidx#1 anim::@7/(byte) anim::yidx#2 )
  [29] (byte) anim::j2#1 ← (byte) anim::j2#2 - (byte) 2
  [30] (byte) anim::j#1 ← ++ (byte) anim::j#2
  [31] if((byte) anim::j#1!=(byte) 7) goto anim::@3
  to:anim::@8
anim::@8: scope:[anim]  from anim::@5
  [32] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::x_msb#1
  [33] (byte) sin_idx_x#3 ← ++ (byte) sin_idx_x#13
  [34] if((byte) sin_idx_x#3<(const byte) sinlen_x#0) goto anim::@9
  to:anim::@1
anim::@9: scope:[anim]  from anim::@8
  [35] phi()
  to:anim::@1
anim::@1: scope:[anim]  from anim::@8 anim::@9
  [36] (byte) sin_idx_x#11 ← phi( anim::@8/(byte) 0 anim::@9/(byte) sin_idx_x#3 )
  [37] (byte) sin_idx_y#3 ← ++ (byte) sin_idx_y#13
  [38] if((byte) sin_idx_y#3<(const byte) sinlen_y#0) goto anim::@10
  to:anim::@2
anim::@10: scope:[anim]  from anim::@1
  [39] phi()
  to:anim::@2
anim::@2: scope:[anim]  from anim::@1 anim::@10
  [40] (byte) sin_idx_y#11 ← phi( anim::@10/(byte) sin_idx_y#3 anim::@1/(byte) 0 )
  [41] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
  to:anim::@return
anim::@return: scope:[anim]  from anim::@2
  [42] return 
  to:@return
init: scope:[init]  from main
  [43] phi()
  [44] call clear_screen 
  to:init::@1
init::@1: scope:[init]  from init init::@1
  [45] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init/(byte) 0 )
  [46] *((const byte*) COLS#0 + (byte) init::i#2) ← (byte) 0
  [47] *((const byte*) COLS#0+(byte) $28 + (byte) init::i#2) ← (byte) $b
  [48] (byte) init::i#1 ← ++ (byte) init::i#2
  [49] if((byte) init::i#1!=(byte) $28) goto init::@1
  to:init::@2
init::@2: scope:[init]  from init::@1
  [50] phi()
  [51] call place_sprites 
  to:init::@3
init::@3: scope:[init]  from init::@2
  [52] phi()
  [53] call gen_sprites 
  to:init::@4
init::@4: scope:[init]  from init::@3
  [54] phi()
  [55] call progress_init 
  to:init::@5
init::@5: scope:[init]  from init::@4
  [56] phi()
  [57] call gen_sintab 
  to:init::@6
init::@6: scope:[init]  from init::@5
  [58] phi()
  [59] call progress_init 
  to:init::@7
init::@7: scope:[init]  from init::@6
  [60] phi()
  [61] call gen_sintab 
  to:init::@8
init::@8: scope:[init]  from init::@7
  [62] phi()
  [63] call clear_screen 
  to:init::@return
init::@return: scope:[init]  from init::@8
  [64] return 
  to:@return
clear_screen: scope:[clear_screen]  from init init::@8
  [65] phi()
  to:clear_screen::@2
clear_screen::@2: scope:[clear_screen]  from clear_screen clear_screen::@1
  [66] (byte*) clear_screen::sc#4 ← phi( clear_screen::@1/(byte*) clear_screen::sc#1 clear_screen/(const byte*) SCREEN#0 )
  [67] *((byte*) clear_screen::sc#4) ← (byte) ' '
  [68] (byte*) clear_screen::sc#1 ← ++ (byte*) clear_screen::sc#4
  to:clear_screen::@1
clear_screen::@1: scope:[clear_screen]  from clear_screen::@2
  [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word) $3e8) goto clear_screen::@2
  to:clear_screen::@return
clear_screen::@return: scope:[clear_screen]  from clear_screen::@1
  [70] return 
  to:@return
gen_sintab: scope:[gen_sintab]  from init::@5 init::@7
  [71] (byte*) gen_sintab::sintab#13 ← phi( init::@5/(const byte[$dd]) sintab_x#0 init::@7/(const byte[$c5]) sintab_y#0 )
  [71] (byte) gen_sintab::length#10 ← phi( init::@5/(const byte) sinlen_x#0 init::@7/(const byte) sinlen_y#0 )
  [71] (byte) gen_sintab::min#2 ← phi( init::@5/(byte) 0 init::@7/(byte) $32 )
  [71] (byte) gen_sintab::max#2 ← phi( init::@5/(byte) $ff init::@7/(byte) $d0 )
  [72] (word) setFAC::w#0 ← (word)(byte) gen_sintab::max#2
  [73] call setFAC 
  to:gen_sintab::@3
gen_sintab::@3: scope:[gen_sintab]  from gen_sintab
  [74] phi()
  [75] call setARGtoFAC 
  to:gen_sintab::@4
gen_sintab::@4: scope:[gen_sintab]  from gen_sintab::@3
  [76] (word) setFAC::w#1 ← (word)(byte) gen_sintab::min#2
  [77] call setFAC 
  to:gen_sintab::@5
gen_sintab::@5: scope:[gen_sintab]  from gen_sintab::@4
  [78] phi()
  [79] call setMEMtoFAC 
  to:gen_sintab::@6
gen_sintab::@6: scope:[gen_sintab]  from gen_sintab::@5
  [80] phi()
  [81] call subFACfromARG 
  to:gen_sintab::@7
gen_sintab::@7: scope:[gen_sintab]  from gen_sintab::@6
  [82] phi()
  [83] call setMEMtoFAC 
  to:gen_sintab::@8
gen_sintab::@8: scope:[gen_sintab]  from gen_sintab::@7
  [84] phi()
  [85] call setFAC 
  to:gen_sintab::@9
gen_sintab::@9: scope:[gen_sintab]  from gen_sintab::@8
  [86] phi()
  [87] call divMEMbyFAC 
  to:gen_sintab::@10
gen_sintab::@10: scope:[gen_sintab]  from gen_sintab::@9
  [88] phi()
  [89] call setMEMtoFAC 
  to:gen_sintab::@11
gen_sintab::@11: scope:[gen_sintab]  from gen_sintab::@10
  [90] phi()
  [91] call addMEMtoFAC 
  to:gen_sintab::@12
gen_sintab::@12: scope:[gen_sintab]  from gen_sintab::@11
  [92] phi()
  [93] call setMEMtoFAC 
  to:gen_sintab::@1
gen_sintab::@1: scope:[gen_sintab]  from gen_sintab::@12 gen_sintab::@22
  [94] (byte*) progress_cursor#13 ← phi( gen_sintab::@12/(byte*) progress_init::line#2 gen_sintab::@22/(byte*) progress_cursor#11 )
  [94] (byte) progress_idx#14 ← phi( gen_sintab::@12/(byte) 0 gen_sintab::@22/(byte) progress_idx#12 )
  [94] (byte) gen_sintab::i#10 ← phi( gen_sintab::@12/(byte) 0 gen_sintab::@22/(byte) gen_sintab::i#1 )
  [95] if((byte) gen_sintab::i#10<(byte) gen_sintab::length#10) goto gen_sintab::@2
  to:gen_sintab::@return
gen_sintab::@return: scope:[gen_sintab]  from gen_sintab::@1
  [96] return 
  to:@return
gen_sintab::@2: scope:[gen_sintab]  from gen_sintab::@1
  [97] (word) setFAC::w#3 ← (word)(byte) gen_sintab::i#10
  [98] call setFAC 
  to:gen_sintab::@13
gen_sintab::@13: scope:[gen_sintab]  from gen_sintab::@2
  [99] phi()
  [100] call mulFACbyMEM 
  to:gen_sintab::@14
gen_sintab::@14: scope:[gen_sintab]  from gen_sintab::@13
  [101] phi()
  [102] call setMEMtoFAC 
  to:gen_sintab::@15
gen_sintab::@15: scope:[gen_sintab]  from gen_sintab::@14
  [103] (word) setFAC::w#4 ← (word)(byte) gen_sintab::length#10
  [104] call setFAC 
  to:gen_sintab::@16
gen_sintab::@16: scope:[gen_sintab]  from gen_sintab::@15
  [105] phi()
  [106] call divMEMbyFAC 
  to:gen_sintab::@17
gen_sintab::@17: scope:[gen_sintab]  from gen_sintab::@16
  [107] phi()
  [108] call sinFAC 
  to:gen_sintab::@18
gen_sintab::@18: scope:[gen_sintab]  from gen_sintab::@17
  [109] phi()
  [110] call mulFACbyMEM 
  to:gen_sintab::@19
gen_sintab::@19: scope:[gen_sintab]  from gen_sintab::@18
  [111] phi()
  [112] call addMEMtoFAC 
  to:gen_sintab::@20
gen_sintab::@20: scope:[gen_sintab]  from gen_sintab::@19
  [113] phi()
  [114] call getFAC 
  [115] (word) getFAC::return#2 ← (word) getFAC::return#0
  to:gen_sintab::@21
gen_sintab::@21: scope:[gen_sintab]  from gen_sintab::@20
  [116] (word~) gen_sintab::$24 ← (word) getFAC::return#2
  [117] (byte~) gen_sintab::$25 ← (byte)(word~) gen_sintab::$24
  [118] *((byte*) gen_sintab::sintab#13 + (byte) gen_sintab::i#10) ← (byte~) gen_sintab::$25
  [119] call progress_inc 
  to:gen_sintab::@22
gen_sintab::@22: scope:[gen_sintab]  from gen_sintab::@21
  [120] (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#10
  to:gen_sintab::@1
progress_inc: scope:[progress_inc]  from gen_sintab::@21
  [121] (byte) progress_idx#10 ← ++ (byte) progress_idx#14
  [122] if((byte) progress_idx#10!=(byte) 8) goto progress_inc::@1
  to:progress_inc::@2
progress_inc::@2: scope:[progress_inc]  from progress_inc
  [123] *((byte*) progress_cursor#13) ← *((const byte[]) progress_inc::progress_chars#0+(byte) 8)
  [124] (byte*) progress_cursor#10 ← ++ (byte*) progress_cursor#13
  to:progress_inc::@1
progress_inc::@1: scope:[progress_inc]  from progress_inc progress_inc::@2
  [125] (byte*) progress_cursor#11 ← phi( progress_inc/(byte*) progress_cursor#13 progress_inc::@2/(byte*) progress_cursor#10 )
  [125] (byte) progress_idx#12 ← phi( progress_inc/(byte) progress_idx#10 progress_inc::@2/(byte) 0 )
  [126] *((byte*) progress_cursor#11) ← *((const byte[]) progress_inc::progress_chars#0 + (byte) progress_idx#12)
  to:progress_inc::@return
progress_inc::@return: scope:[progress_inc]  from progress_inc::@1
  [127] return 
  to:@return
getFAC: scope:[getFAC]  from gen_sintab::@20
  asm { jsr$b1aa stymemLo stamemHi  }
  [129] (word) getFAC::return#0 ← *((const byte*) memHi#0) w= *((const byte*) memLo#0)
  to:getFAC::@return
getFAC::@return: scope:[getFAC]  from getFAC
  [130] return 
  to:@return
addMEMtoFAC: scope:[addMEMtoFAC]  from gen_sintab::@11 gen_sintab::@19
  [131] phi()
  to:addMEMtoFAC::prepareMEM1
addMEMtoFAC::prepareMEM1: scope:[addMEMtoFAC]  from addMEMtoFAC
  [132] *((const byte*) memLo#0) ← <(word)(const byte[]) gen_sintab::f_min#0
  [133] *((const byte*) memHi#0) ← >(word)(const byte[]) gen_sintab::f_min#0
  to:addMEMtoFAC::@1
addMEMtoFAC::@1: scope:[addMEMtoFAC]  from addMEMtoFAC::prepareMEM1
  asm { ldamemLo ldymemHi jsr$b867  }
  to:addMEMtoFAC::@return
addMEMtoFAC::@return: scope:[addMEMtoFAC]  from addMEMtoFAC::@1
  [135] return 
  to:@return
mulFACbyMEM: scope:[mulFACbyMEM]  from gen_sintab::@13 gen_sintab::@18
  [136] (byte*) mulFACbyMEM::mem#2 ← phi( gen_sintab::@13/(const byte*) gen_sintab::f_2pi#0 gen_sintab::@18/(const byte[]) gen_sintab::f_amp#0 )
  to:mulFACbyMEM::prepareMEM1
mulFACbyMEM::prepareMEM1: scope:[mulFACbyMEM]  from mulFACbyMEM
  [137] (byte~) mulFACbyMEM::prepareMEM1_$0#0 ← < (word)(byte*) mulFACbyMEM::mem#2
  [138] *((const byte*) memLo#0) ← (byte~) mulFACbyMEM::prepareMEM1_$0#0
  [139] (byte~) mulFACbyMEM::prepareMEM1_$1#0 ← > (word)(byte*) mulFACbyMEM::mem#2
  [140] *((const byte*) memHi#0) ← (byte~) mulFACbyMEM::prepareMEM1_$1#0
  to:mulFACbyMEM::@1
mulFACbyMEM::@1: scope:[mulFACbyMEM]  from mulFACbyMEM::prepareMEM1
  asm { ldamemLo ldymemHi jsr$ba28  }
  to:mulFACbyMEM::@return
mulFACbyMEM::@return: scope:[mulFACbyMEM]  from mulFACbyMEM::@1
  [142] return 
  to:@return
sinFAC: scope:[sinFAC]  from gen_sintab::@17
  asm { jsr$e26b  }
  to:sinFAC::@return
sinFAC::@return: scope:[sinFAC]  from sinFAC
  [144] return 
  to:@return
divMEMbyFAC: scope:[divMEMbyFAC]  from gen_sintab::@16 gen_sintab::@9
  [145] (byte*) divMEMbyFAC::mem#2 ← phi( gen_sintab::@9/(const byte[]) gen_sintab::f_amp#0 gen_sintab::@16/(const byte[]) gen_sintab::f_i#0 )
  to:divMEMbyFAC::prepareMEM1
divMEMbyFAC::prepareMEM1: scope:[divMEMbyFAC]  from divMEMbyFAC
  [146] (byte~) divMEMbyFAC::prepareMEM1_$0#0 ← < (word)(byte*) divMEMbyFAC::mem#2
  [147] *((const byte*) memLo#0) ← (byte~) divMEMbyFAC::prepareMEM1_$0#0
  [148] (byte~) divMEMbyFAC::prepareMEM1_$1#0 ← > (word)(byte*) divMEMbyFAC::mem#2
  [149] *((const byte*) memHi#0) ← (byte~) divMEMbyFAC::prepareMEM1_$1#0
  to:divMEMbyFAC::@1
divMEMbyFAC::@1: scope:[divMEMbyFAC]  from divMEMbyFAC::prepareMEM1
  asm { ldamemLo ldymemHi jsr$bb0f  }
  to:divMEMbyFAC::@return
divMEMbyFAC::@return: scope:[divMEMbyFAC]  from divMEMbyFAC::@1
  [151] return 
  to:@return
setFAC: scope:[setFAC]  from gen_sintab gen_sintab::@15 gen_sintab::@2 gen_sintab::@4 gen_sintab::@8
  [152] (word) setFAC::prepareMEM1_mem#0 ← phi( gen_sintab/(word) setFAC::w#0 gen_sintab::@8/(byte) 2 gen_sintab::@2/(word) setFAC::w#3 gen_sintab::@15/(word) setFAC::w#4 gen_sintab::@4/(word) setFAC::w#1 )
  to:setFAC::prepareMEM1
setFAC::prepareMEM1: scope:[setFAC]  from setFAC
  [153] (byte~) setFAC::prepareMEM1_$0#0 ← < (word) setFAC::prepareMEM1_mem#0
  [154] *((const byte*) memLo#0) ← (byte~) setFAC::prepareMEM1_$0#0
  [155] (byte~) setFAC::prepareMEM1_$1#0 ← > (word) setFAC::prepareMEM1_mem#0
  [156] *((const byte*) memHi#0) ← (byte~) setFAC::prepareMEM1_$1#0
  to:setFAC::@1
setFAC::@1: scope:[setFAC]  from setFAC::prepareMEM1
  asm { ldymemLo ldamemHi jsr$b391  }
  to:setFAC::@return
setFAC::@return: scope:[setFAC]  from setFAC::@1
  [158] return 
  to:@return
setMEMtoFAC: scope:[setMEMtoFAC]  from gen_sintab::@10 gen_sintab::@12 gen_sintab::@14 gen_sintab::@5 gen_sintab::@7
  [159] (byte*) setMEMtoFAC::mem#5 ← phi( gen_sintab::@7/(const byte[]) gen_sintab::f_amp#0 gen_sintab::@10/(const byte[]) gen_sintab::f_amp#0 gen_sintab::@12/(const byte[]) gen_sintab::f_min#0 gen_sintab::@14/(const byte[]) gen_sintab::f_i#0 gen_sintab::@5/(const byte[]) gen_sintab::f_min#0 )
  to:setMEMtoFAC::prepareMEM1
setMEMtoFAC::prepareMEM1: scope:[setMEMtoFAC]  from setMEMtoFAC
  [160] (byte~) setMEMtoFAC::prepareMEM1_$0#0 ← < (word)(byte*) setMEMtoFAC::mem#5
  [161] *((const byte*) memLo#0) ← (byte~) setMEMtoFAC::prepareMEM1_$0#0
  [162] (byte~) setMEMtoFAC::prepareMEM1_$1#0 ← > (word)(byte*) setMEMtoFAC::mem#5
  [163] *((const byte*) memHi#0) ← (byte~) setMEMtoFAC::prepareMEM1_$1#0
  to:setMEMtoFAC::@1
setMEMtoFAC::@1: scope:[setMEMtoFAC]  from setMEMtoFAC::prepareMEM1
  asm { ldxmemLo ldymemHi jsr$bbd4  }
  to:setMEMtoFAC::@return
setMEMtoFAC::@return: scope:[setMEMtoFAC]  from setMEMtoFAC::@1
  [165] return 
  to:@return
subFACfromARG: scope:[subFACfromARG]  from gen_sintab::@6
  asm { jsr$b853  }
  to:subFACfromARG::@return
subFACfromARG::@return: scope:[subFACfromARG]  from subFACfromARG
  [167] return 
  to:@return
setARGtoFAC: scope:[setARGtoFAC]  from gen_sintab::@3
  asm { jsr$bc0f  }
  to:setARGtoFAC::@return
setARGtoFAC::@return: scope:[setARGtoFAC]  from setARGtoFAC
  [169] return 
  to:@return
progress_init: scope:[progress_init]  from init::@4 init::@6
  [170] (byte*) progress_init::line#2 ← phi( init::@4/(const byte*) SCREEN#0 init::@6/(const byte*) SCREEN#0+(byte) $28 )
  to:progress_init::@return
progress_init::@return: scope:[progress_init]  from progress_init
  [171] return 
  to:@return
gen_sprites: scope:[gen_sprites]  from init::@3
  [172] phi()
  to:gen_sprites::@1
gen_sprites::@1: scope:[gen_sprites]  from gen_sprites gen_sprites::@2
  [173] (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(const byte*) sprites#0 gen_sprites::@2/(byte*) gen_sprites::spr#1 )
  [173] (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) 0 gen_sprites::@2/(byte) gen_sprites::i#1 )
  [174] (byte) gen_chargen_sprite::ch#0 ← *((const byte[]) gen_sprites::cml#0 + (byte) gen_sprites::i#2)
  [175] (byte*) gen_chargen_sprite::sprite#0 ← (byte*) gen_sprites::spr#2
  [176] call gen_chargen_sprite 
  to:gen_sprites::@2
gen_sprites::@2: scope:[gen_sprites]  from gen_sprites::@1
  [177] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte) $40
  [178] (byte) gen_sprites::i#1 ← ++ (byte) gen_sprites::i#2
  [179] if((byte) gen_sprites::i#1!=(byte) 7) goto gen_sprites::@1
  to:gen_sprites::@return
gen_sprites::@return: scope:[gen_sprites]  from gen_sprites::@2
  [180] return 
  to:@return
gen_chargen_sprite: scope:[gen_chargen_sprite]  from gen_sprites::@1
  [181] (word~) gen_chargen_sprite::$0 ← (word)(byte) gen_chargen_sprite::ch#0
  [182] (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte) 3
  [183] (byte*) gen_chargen_sprite::chargen#0 ← (const byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1
  asm { sei  }
  [185] *((const byte*) PROCPORT#0) ← (byte) $32
  to:gen_chargen_sprite::@1
gen_chargen_sprite::@1: scope:[gen_chargen_sprite]  from gen_chargen_sprite gen_chargen_sprite::@8
  [186] (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::sprite#2 )
  [186] (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#1 )
  [187] (byte) gen_chargen_sprite::bits#0 ← *((byte*) gen_chargen_sprite::chargen#0 + (byte) gen_chargen_sprite::y#2)
  to:gen_chargen_sprite::@2
gen_chargen_sprite::@2: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@1 gen_chargen_sprite::@7
  [188] (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(byte) 0 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::x#1 )
  [188] (byte*) gen_chargen_sprite::sprite#10 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::sprite#11 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::sprite#4 )
  [188] (byte) gen_chargen_sprite::s_gen_cnt#4 ← phi( gen_chargen_sprite::@1/(byte) 0 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::s_gen_cnt#5 )
  [188] (byte) gen_chargen_sprite::s_gen#5 ← phi( gen_chargen_sprite::@1/(byte) 0 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::s_gen#6 )
  [188] (byte) gen_chargen_sprite::bits#2 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::bits#0 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::bits#1 )
  [189] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte) $80
  [190] if((byte~) gen_chargen_sprite::$3==(byte) 0) goto gen_chargen_sprite::@3
  to:gen_chargen_sprite::@10
gen_chargen_sprite::@10: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@2
  [191] phi()
  to:gen_chargen_sprite::@3
gen_chargen_sprite::@3: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@10 gen_chargen_sprite::@2
  [192] (byte) gen_chargen_sprite::c#3 ← phi( gen_chargen_sprite::@10/(byte) 1 gen_chargen_sprite::@2/(byte) 0 )
  to:gen_chargen_sprite::@4
gen_chargen_sprite::@4: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@3 gen_chargen_sprite::@5
  [193] (byte*) gen_chargen_sprite::sprite#3 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::sprite#10 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::sprite#4 )
  [193] (byte) gen_chargen_sprite::b#2 ← phi( gen_chargen_sprite::@3/(byte) 0 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::b#1 )
  [193] (byte) gen_chargen_sprite::s_gen_cnt#3 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen_cnt#5 )
  [193] (byte) gen_chargen_sprite::s_gen#3 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::s_gen#5 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen#6 )
  [194] (byte~) gen_chargen_sprite::$6 ← (byte) gen_chargen_sprite::s_gen#3 << (byte) 1
  [195] (byte) gen_chargen_sprite::s_gen#1 ← (byte~) gen_chargen_sprite::$6 | (byte) gen_chargen_sprite::c#3
  [196] (byte) gen_chargen_sprite::s_gen_cnt#1 ← ++ (byte) gen_chargen_sprite::s_gen_cnt#3
  [197] if((byte) gen_chargen_sprite::s_gen_cnt#1!=(byte) 8) goto gen_chargen_sprite::@5
  to:gen_chargen_sprite::@6
gen_chargen_sprite::@6: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@4
  [198] *((byte*) gen_chargen_sprite::sprite#3) ← (byte) gen_chargen_sprite::s_gen#1
  [199] *((byte*) gen_chargen_sprite::sprite#3 + (byte) 3) ← (byte) gen_chargen_sprite::s_gen#1
  [200] *((byte*) gen_chargen_sprite::sprite#3 + (byte) 6) ← (byte) gen_chargen_sprite::s_gen#1
  [201] (byte*) gen_chargen_sprite::sprite#1 ← ++ (byte*) gen_chargen_sprite::sprite#3
  to:gen_chargen_sprite::@5
gen_chargen_sprite::@5: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@4 gen_chargen_sprite::@6
  [202] (byte*) gen_chargen_sprite::sprite#4 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::sprite#3 gen_chargen_sprite::@6/(byte*) gen_chargen_sprite::sprite#1 )
  [202] (byte) gen_chargen_sprite::s_gen_cnt#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::s_gen_cnt#1 gen_chargen_sprite::@6/(byte) 0 )
  [202] (byte) gen_chargen_sprite::s_gen#6 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::s_gen#1 gen_chargen_sprite::@6/(byte) 0 )
  [203] (byte) gen_chargen_sprite::b#1 ← ++ (byte) gen_chargen_sprite::b#2
  [204] if((byte) gen_chargen_sprite::b#1!=(byte) 3) goto gen_chargen_sprite::@4
  to:gen_chargen_sprite::@7
gen_chargen_sprite::@7: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@5
  [205] (byte) gen_chargen_sprite::bits#1 ← (byte) gen_chargen_sprite::bits#2 << (byte) 1
  [206] (byte) gen_chargen_sprite::x#1 ← ++ (byte) gen_chargen_sprite::x#6
  [207] if((byte) gen_chargen_sprite::x#1!=(byte) 8) goto gen_chargen_sprite::@2
  to:gen_chargen_sprite::@8
gen_chargen_sprite::@8: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@7
  [208] (byte*) gen_chargen_sprite::sprite#2 ← (byte*) gen_chargen_sprite::sprite#4 + (byte) 6
  [209] (byte) gen_chargen_sprite::y#1 ← ++ (byte) gen_chargen_sprite::y#2
  [210] if((byte) gen_chargen_sprite::y#1!=(byte) 8) goto gen_chargen_sprite::@1
  to:gen_chargen_sprite::@9
gen_chargen_sprite::@9: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@8
  [211] *((const byte*) PROCPORT#0) ← (byte) $37
  asm { cli  }
  to:gen_chargen_sprite::@return
gen_chargen_sprite::@return: scope:[gen_chargen_sprite]  from gen_chargen_sprite::@9
  [213] return 
  to:@return
place_sprites: scope:[place_sprites]  from init::@2
  [214] *((const byte*) SPRITES_ENABLE#0) ← (byte) $7f
  [215] *((const byte*) SPRITES_EXPAND_X#0) ← (byte) $7f
  [216] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte) $7f
  to:place_sprites::@1
place_sprites::@1: scope:[place_sprites]  from place_sprites place_sprites::@1
  [217] (byte) place_sprites::col#2 ← phi( place_sprites/(byte) 5 place_sprites::@1/(byte) place_sprites::col#1 )
  [217] (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) 0 place_sprites::@1/(byte) place_sprites::j2#2 )
  [217] (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) $3c place_sprites::@1/(byte) place_sprites::spr_x#1 )
  [217] (byte) place_sprites::j#2 ← phi( place_sprites/(byte) 0 place_sprites::@1/(byte) place_sprites::j#1 )
  [217] (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte)(word)(const byte*) sprites#0/(byte) $40 place_sprites::@1/(byte) place_sprites::spr_id#1 )
  [218] *((const byte*) place_sprites::sprites_ptr#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2
  [219] (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2
  [220] *((const byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2
  [221] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte) $50
  [222] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2
  [223] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte) $20
  [224] (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte)(number) 7^(number) 5
  [225] (byte) place_sprites::j2#1 ← ++ (byte) place_sprites::j2#3
  [226] (byte) place_sprites::j2#2 ← ++ (byte) place_sprites::j2#1
  [227] (byte) place_sprites::j#1 ← ++ (byte) place_sprites::j#2
  [228] if((byte) place_sprites::j#1!=(byte) 7) goto place_sprites::@1
  to:place_sprites::@return
place_sprites::@return: scope:[place_sprites]  from place_sprites::@1
  [229] return 
  to:@return
