@begin: scope:[]  from
  [0] phi()
  to:@33
@33: scope:[]  from @begin
  kickasm(location (const byte*) mulf_sqr1#0) {{ .for(var i=0;i<$200;i++) {
    	.if(i<=159) { .byte round((i*i)/256) }
    	.if(i>159 && i<=351 ) { .byte round(((i-256)*(i-256))/256) }
    	.if(i>351) { .byte round(((512-i)*(512-i))/256) }
    }
 }}
  kickasm(location (const byte*) mulf_sqr2#0) {{ .for(var i=0;i<$200;i++) {
    	.if(i<=159) { .byte round((-i-1)*(-i-1)/256) }
    	.if(i>159 && i<=351 ) { .byte round(((255-i)*(255-i))/256) }
    	.if(i>351) { .byte round(((i-511)*(i-511))/256) }  
    }
 }}
  kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff))
    .for (var y=0; y<21; y++)
        .for (var x=0;x<3; x++)
            .byte pic.getSinglecolorByte(x,y)
 }}
  kickasm(location (const signed byte*) PERSP_Z#0) {{ {
    .var d = 256.0	
    .var z0 = 6.0	
    // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f)
    .for(var z=0;z<$100;z++) {
    	.if(z>127) {
    		.byte round(d / (z0 - ((z - 256) / 64.0)));
    	} else {
    		.byte round(d / (z0 - (z / 64.0)));
    	}
    }
	}
 }}
  kickasm(location (const signed byte*) SINH#0) {{ {
    .var min = -$2000
    .var max = $2000
    .var ampl = max-min;
    .for(var i=0;i<$140;i++) {
        .var rad = i*2*PI/256;
        .byte round((min+(ampl/2)+(ampl/2)*sin(rad))/256)
    }
    }
 }}
  kickasm(location (const signed byte*) SINQ#0) {{ {
    .var min = -$1000
    .var max = $1000
    .var ampl = max-min;
    .for(var i=0;i<$140;i++) {
        .var rad = i*2*PI/256;
        .byte round((min+(ampl/2)+(ampl/2)*sin(rad))/256)
    }
    }
 }}
  kickasm(location (const byte*) SINH_LO#0) {{ {
    .var min = -$2000
    .var max = $2000
    .var ampl = max-min;
    .for(var i=0;i<$140;i++) {
        .var rad = i*2*PI/256;
        .byte <(min+(ampl/2)+(ampl/2)*sin(rad))
    }
    }
 }}
  kickasm(location (const byte*) SINH_HI#0) {{ {
    .var min = -$2000
    .var max = $2000
    .var ampl = max-min;
    .for(var i=0;i<$140;i++) {
        .var rad = i*2*PI/256;
        .byte >(min+(ampl/2)+(ampl/2)*sin(rad))
    }
    }
 }}
  kickasm(location (const byte*) SINQ_LO#0) {{ {
    .var min = -$1000
    .var max = $1000
    .var ampl = max-min;
    .for(var i=0;i<$140;i++) {
        .var rad = i*2*PI/256;
        .byte <(min+(ampl/2)+(ampl/2)*sin(rad))
    }
    }
 }}
  kickasm(location (const byte*) SINQ_HI#0) {{ {
    .var min = -$1000
    .var max = $1000
    .var ampl = max-min;
    .for(var i=0;i<$140;i++) {
        .var rad = i*2*PI/256;
        .byte >(min+(ampl/2)+(ampl/2)*sin(rad))
    }
    }
 }}
  [11] call main 
  to:@end
@end: scope:[]  from @33
  [12] phi()
main: scope:[main]  from @33
  asm { sei  }
  [14] call sprites_init 
  to:main::@1
main::@1: scope:[main]  from main
  [15] *((const word*) psp1#0) ← ((word))(const byte*) mulf_sqr1#0
  [16] *((const word*) psp2#0) ← ((word))(const byte*) mulf_sqr2#0
  [17] call debug_print_init 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [18] phi()
  [19] call anim 
  to:main::@return
main::@return: scope:[main]  from main::@2
  [20] return 
  to:@return
anim: scope:[anim]  from main::@2
  [21] phi()
  to:anim::@1
anim::@1: scope:[anim]  from anim anim::@30
  [22] (signed byte) sy#10 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@30/(signed byte) sy#3 )
  [22] (signed byte) sx#10 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@30/(signed byte) sx#3 )
  to:anim::@4
anim::@4: scope:[anim]  from anim::@1 anim::@4
  [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4
  to:anim::@7
anim::@7: scope:[anim]  from anim::@4 anim::@7
  [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7
  to:anim::@10
anim::@10: scope:[anim]  from anim::@10 anim::@7
  [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10
  to:anim::@12
anim::@12: scope:[anim]  from anim::@10
  [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
  [27] (signed byte) calculate_matrix::sx#0 ← (signed byte) sx#10
  [28] (signed byte) calculate_matrix::sy#0 ← (signed byte) sy#10
  [29] call calculate_matrix 
  to:anim::@27
anim::@27: scope:[anim]  from anim::@12
  [30] phi()
  [31] call store_matrix 
  to:anim::@13
anim::@13: scope:[anim]  from anim::@27 anim::@29
  [32] (byte) anim::i#2 ← phi( anim::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@29/(byte) anim::i#1 )
  [33] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
  [34] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2)
  [35] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2)
  [36] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2)
  [37] call rotate_matrix 
  to:anim::@29
anim::@29: scope:[anim]  from anim::@13
  [38] *((const signed byte[8]) xrs#0 + (byte) anim::i#2) ← *((const signed byte*) xr#0)
  [39] *((const signed byte[8]) yrs#0 + (byte) anim::i#2) ← *((const signed byte*) yr#0)
  [40] *((const signed byte[8]) zrs#0 + (byte) anim::i#2) ← *((const signed byte*) zr#0)
  [41] *((const signed byte[8]) pps#0 + (byte) anim::i#2) ← *((const signed byte*) pp#0)
  [42] *((const signed byte[8]) xps#0 + (byte) anim::i#2) ← *((const signed byte*) xp#0)
  [43] *((const signed byte[8]) yps#0 + (byte) anim::i#2) ← *((const signed byte*) yp#0)
  [44] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0)
  [46] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8
  [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0)
  [48] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10
  [49] (byte) anim::i#1 ← ++ (byte) anim::i#2
  [50] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@13
  to:anim::@25
anim::@25: scope:[anim]  from anim::@29
  [51] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_GREY#0
  [52] call debug_print 
  to:anim::@30
anim::@30: scope:[anim]  from anim::@25
  [53] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0
  [54] (signed byte) sx#3 ← (signed byte) sx#10 + (byte/signed byte/word/signed word/dword/signed dword) 2
  [55] (signed byte) sy#3 ← (signed byte) sy#10 - (byte/signed byte/word/signed word/dword/signed dword) 3
  to:anim::@1
debug_print: scope:[debug_print]  from anim::@25
  [56] (signed byte) debug_print::print_sbyte_pos1_sb#0 ← (signed byte) sx#10
  to:debug_print::print_sbyte_pos1
debug_print::print_sbyte_pos1: scope:[debug_print]  from debug_print
  [57] (signed byte) print_sbyte_at::b#4 ← (signed byte) debug_print::print_sbyte_pos1_sb#0
  [58] call print_sbyte_at 
  to:debug_print::@3
debug_print::@3: scope:[debug_print]  from debug_print::print_sbyte_pos1
  [59] (signed byte) debug_print::print_sbyte_pos2_sb#0 ← (signed byte) sy#10
  to:debug_print::print_sbyte_pos2
debug_print::print_sbyte_pos2: scope:[debug_print]  from debug_print::@3
  [60] (signed byte) print_sbyte_at::b#5 ← (signed byte) debug_print::print_sbyte_pos2_sb#0
  [61] call print_sbyte_at 
  to:debug_print::print_sbyte_pos3
debug_print::print_sbyte_pos3: scope:[debug_print]  from debug_print::print_sbyte_pos2
  [62] phi()
  [63] call print_sbyte_at 
  to:debug_print::@5
debug_print::@5: scope:[debug_print]  from debug_print::print_sbyte_pos3
  [64] (signed byte) debug_print::print_sbyte_pos4_sb#0 ← *((const signed byte[9]) rotation_matrix#0)
  to:debug_print::print_sbyte_pos4
debug_print::print_sbyte_pos4: scope:[debug_print]  from debug_print::@5
  [65] (signed byte) print_sbyte_at::b#7 ← (signed byte) debug_print::print_sbyte_pos4_sb#0
  [66] call print_sbyte_at 
  to:debug_print::@6
debug_print::@6: scope:[debug_print]  from debug_print::print_sbyte_pos4
  [67] (signed byte) debug_print::print_sbyte_pos5_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1)
  to:debug_print::print_sbyte_pos5
debug_print::print_sbyte_pos5: scope:[debug_print]  from debug_print::@6
  [68] (signed byte) print_sbyte_at::b#8 ← (signed byte) debug_print::print_sbyte_pos5_sb#0
  [69] call print_sbyte_at 
  to:debug_print::@7
debug_print::@7: scope:[debug_print]  from debug_print::print_sbyte_pos5
  [70] (signed byte) debug_print::print_sbyte_pos6_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2)
  to:debug_print::print_sbyte_pos6
debug_print::print_sbyte_pos6: scope:[debug_print]  from debug_print::@7
  [71] (signed byte) print_sbyte_at::b#9 ← (signed byte) debug_print::print_sbyte_pos6_sb#0
  [72] call print_sbyte_at 
  to:debug_print::@8
debug_print::@8: scope:[debug_print]  from debug_print::print_sbyte_pos6
  [73] (signed byte) debug_print::print_sbyte_pos7_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3)
  to:debug_print::print_sbyte_pos7
debug_print::print_sbyte_pos7: scope:[debug_print]  from debug_print::@8
  [74] (signed byte) print_sbyte_at::b#10 ← (signed byte) debug_print::print_sbyte_pos7_sb#0
  [75] call print_sbyte_at 
  to:debug_print::@9
debug_print::@9: scope:[debug_print]  from debug_print::print_sbyte_pos7
  [76] (signed byte) debug_print::print_sbyte_pos8_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4)
  to:debug_print::print_sbyte_pos8
debug_print::print_sbyte_pos8: scope:[debug_print]  from debug_print::@9
  [77] (signed byte) print_sbyte_at::b#11 ← (signed byte) debug_print::print_sbyte_pos8_sb#0
  [78] call print_sbyte_at 
  to:debug_print::@10
debug_print::@10: scope:[debug_print]  from debug_print::print_sbyte_pos8
  [79] (signed byte) debug_print::print_sbyte_pos9_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5)
  to:debug_print::print_sbyte_pos9
debug_print::print_sbyte_pos9: scope:[debug_print]  from debug_print::@10
  [80] (signed byte) print_sbyte_at::b#12 ← (signed byte) debug_print::print_sbyte_pos9_sb#0
  [81] call print_sbyte_at 
  to:debug_print::@11
debug_print::@11: scope:[debug_print]  from debug_print::print_sbyte_pos9
  [82] (signed byte) debug_print::print_sbyte_pos10_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6)
  to:debug_print::print_sbyte_pos10
debug_print::print_sbyte_pos10: scope:[debug_print]  from debug_print::@11
  [83] (signed byte) print_sbyte_at::b#13 ← (signed byte) debug_print::print_sbyte_pos10_sb#0
  [84] call print_sbyte_at 
  to:debug_print::@12
debug_print::@12: scope:[debug_print]  from debug_print::print_sbyte_pos10
  [85] (signed byte) debug_print::print_sbyte_pos11_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7)
  to:debug_print::print_sbyte_pos11
debug_print::print_sbyte_pos11: scope:[debug_print]  from debug_print::@12
  [86] (signed byte) print_sbyte_at::b#14 ← (signed byte) debug_print::print_sbyte_pos11_sb#0
  [87] call print_sbyte_at 
  to:debug_print::@13
debug_print::@13: scope:[debug_print]  from debug_print::print_sbyte_pos11
  [88] (signed byte) debug_print::print_sbyte_pos12_sb#0 ← *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8)
  to:debug_print::print_sbyte_pos12
debug_print::print_sbyte_pos12: scope:[debug_print]  from debug_print::@13
  [89] (signed byte) print_sbyte_at::b#15 ← (signed byte) debug_print::print_sbyte_pos12_sb#0
  [90] call print_sbyte_at 
  to:debug_print::@1
debug_print::@1: scope:[debug_print]  from debug_print::@32 debug_print::print_sbyte_pos12
  [91] (byte) debug_print::i#2 ← phi( debug_print::print_sbyte_pos12/(byte/signed byte/word/signed word/dword/signed dword) 0 debug_print::@32/(byte) debug_print::i#1 )
  [91] (byte) debug_print::c#2 ← phi( debug_print::print_sbyte_pos12/(byte/signed byte/word/signed word/dword/signed dword) 4 debug_print::@32/(byte) debug_print::c#1 )
  [92] (byte*) print_sbyte_at::at#15 ← (const byte*) debug_print::at_line#0 + (byte) debug_print::c#2
  [93] (signed byte) print_sbyte_at::b#16 ← *((const signed byte[8]) xrs#0 + (byte) debug_print::i#2)
  [94] call print_sbyte_at 
  to:debug_print::@27
debug_print::@27: scope:[debug_print]  from debug_print::@1
  [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2
  [96] (signed byte) print_sbyte_at::b#17 ← *((const signed byte[8]) yrs#0 + (byte) debug_print::i#2)
  [97] call print_sbyte_at 
  to:debug_print::@28
debug_print::@28: scope:[debug_print]  from debug_print::@27
  [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2
  [99] (signed byte) print_sbyte_at::b#18 ← *((const signed byte[8]) zrs#0 + (byte) debug_print::i#2)
  [100] call print_sbyte_at 
  to:debug_print::@29
debug_print::@29: scope:[debug_print]  from debug_print::@28
  [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2
  [102] (signed byte) print_sbyte_at::b#19 ← *((const signed byte[8]) pps#0 + (byte) debug_print::i#2)
  [103] call print_sbyte_at 
  to:debug_print::@30
debug_print::@30: scope:[debug_print]  from debug_print::@29
  [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2
  [105] (signed byte) print_sbyte_at::b#20 ← *((const signed byte[8]) xps#0 + (byte) debug_print::i#2)
  [106] call print_sbyte_at 
  to:debug_print::@31
debug_print::@31: scope:[debug_print]  from debug_print::@30
  [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2
  [108] (signed byte) print_sbyte_at::b#21 ← *((const signed byte[8]) yps#0 + (byte) debug_print::i#2)
  [109] call print_sbyte_at 
  to:debug_print::@32
debug_print::@32: scope:[debug_print]  from debug_print::@31
  [110] (byte) debug_print::c#1 ← (byte) debug_print::c#2 + (byte/signed byte/word/signed word/dword/signed dword) 4
  [111] (byte) debug_print::i#1 ← ++ (byte) debug_print::i#2
  [112] if((byte) debug_print::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto debug_print::@1
  to:debug_print::@return
debug_print::@return: scope:[debug_print]  from debug_print::@32
  [113] return 
  to:@return
print_sbyte_at: scope:[print_sbyte_at]  from debug_print::@1 debug_print::@27 debug_print::@28 debug_print::@29 debug_print::@30 debug_print::@31 debug_print::print_sbyte_pos1 debug_print::print_sbyte_pos10 debug_print::print_sbyte_pos11 debug_print::print_sbyte_pos12 debug_print::print_sbyte_pos2 debug_print::print_sbyte_pos3 debug_print::print_sbyte_pos4 debug_print::print_sbyte_pos5 debug_print::print_sbyte_pos6 debug_print::print_sbyte_pos7 debug_print::print_sbyte_pos8 debug_print::print_sbyte_pos9 debug_print_init::@1 debug_print_init::@18 debug_print_init::@19
  [114] (byte*) print_sbyte_at::at#21 ← phi( debug_print::@1/(byte*) print_sbyte_at::at#15 debug_print::@27/(byte*) print_sbyte_at::at#16 debug_print::@28/(byte*) print_sbyte_at::at#17 debug_print::@29/(byte*) print_sbyte_at::at#18 debug_print::@30/(byte*) print_sbyte_at::at#19 debug_print::@31/(byte*) print_sbyte_at::at#20 debug_print::print_sbyte_pos1/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos1_col#0 debug_print::print_sbyte_pos10/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos10_col#0 debug_print::print_sbyte_pos11/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos11_col#0 debug_print::print_sbyte_pos12/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos12_col#0 debug_print::print_sbyte_pos2/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos2_col#0 debug_print::print_sbyte_pos3/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos3_col#0 debug_print::print_sbyte_pos4/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos4_col#0 debug_print::print_sbyte_pos5/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos5_col#0 debug_print::print_sbyte_pos6/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos6_col#0 debug_print::print_sbyte_pos7/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos7_col#0 debug_print::print_sbyte_pos8/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos8_col#0 debug_print::print_sbyte_pos9/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos9_col#0 debug_print_init::@1/(byte*) print_sbyte_at::at#0 debug_print_init::@18/(byte*) print_sbyte_at::at#1 debug_print_init::@19/(byte*) print_sbyte_at::at#2 )
  [114] (signed byte) print_sbyte_at::b#22 ← phi( debug_print::@1/(signed byte) print_sbyte_at::b#16 debug_print::@27/(signed byte) print_sbyte_at::b#17 debug_print::@28/(signed byte) print_sbyte_at::b#18 debug_print::@29/(signed byte) print_sbyte_at::b#19 debug_print::@30/(signed byte) print_sbyte_at::b#20 debug_print::@31/(signed byte) print_sbyte_at::b#21 debug_print::print_sbyte_pos1/(signed byte) print_sbyte_at::b#4 debug_print::print_sbyte_pos10/(signed byte) print_sbyte_at::b#13 debug_print::print_sbyte_pos11/(signed byte) print_sbyte_at::b#14 debug_print::print_sbyte_pos12/(signed byte) print_sbyte_at::b#15 debug_print::print_sbyte_pos2/(signed byte) print_sbyte_at::b#5 debug_print::print_sbyte_pos3/(const signed byte) sz#0 debug_print::print_sbyte_pos4/(signed byte) print_sbyte_at::b#7 debug_print::print_sbyte_pos5/(signed byte) print_sbyte_at::b#8 debug_print::print_sbyte_pos6/(signed byte) print_sbyte_at::b#9 debug_print::print_sbyte_pos7/(signed byte) print_sbyte_at::b#10 debug_print::print_sbyte_pos8/(signed byte) print_sbyte_at::b#11 debug_print::print_sbyte_pos9/(signed byte) print_sbyte_at::b#12 debug_print_init::@1/(signed byte) print_sbyte_at::b#1 debug_print_init::@18/(signed byte) print_sbyte_at::b#2 debug_print_init::@19/(signed byte) print_sbyte_at::b#3 )
  [115] if((signed byte) print_sbyte_at::b#22<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte_at::@1
  to:print_sbyte_at::@3
print_sbyte_at::@3: scope:[print_sbyte_at]  from print_sbyte_at
  [116] (byte*) print_char_at::at#1 ← (byte*) print_sbyte_at::at#21
  [117] call print_char_at 
  to:print_sbyte_at::@2
print_sbyte_at::@2: scope:[print_sbyte_at]  from print_sbyte_at::@3 print_sbyte_at::@5
  [118] (signed byte) print_sbyte_at::b#24 ← phi( print_sbyte_at::@5/(signed byte) print_sbyte_at::b#0 print_sbyte_at::@3/(signed byte) print_sbyte_at::b#22 )
  [119] (byte*) print_byte_at::at#0 ← (byte*) print_sbyte_at::at#21 + (byte/signed byte/word/signed word/dword/signed dword) 1
  [120] call print_byte_at 
  to:print_sbyte_at::@return
print_sbyte_at::@return: scope:[print_sbyte_at]  from print_sbyte_at::@2
  [121] return 
  to:@return
print_sbyte_at::@1: scope:[print_sbyte_at]  from print_sbyte_at
  [122] (byte*) print_char_at::at#0 ← (byte*) print_sbyte_at::at#21
  [123] call print_char_at 
  to:print_sbyte_at::@5
print_sbyte_at::@5: scope:[print_sbyte_at]  from print_sbyte_at::@1
  [124] (signed byte) print_sbyte_at::b#0 ← - (signed byte) print_sbyte_at::b#22
  to:print_sbyte_at::@2
print_char_at: scope:[print_char_at]  from print_byte_at print_byte_at::@1 print_sbyte_at::@1 print_sbyte_at::@3
  [125] (byte*) print_char_at::at#4 ← phi( print_byte_at/(byte*) print_char_at::at#2 print_byte_at::@1/(byte*) print_char_at::at#3 print_sbyte_at::@1/(byte*) print_char_at::at#0 print_sbyte_at::@3/(byte*) print_char_at::at#1 )
  [125] (byte) print_char_at::ch#4 ← phi( print_byte_at/(byte) print_char_at::ch#2 print_byte_at::@1/(byte) print_char_at::ch#3 print_sbyte_at::@1/(byte) '-' print_sbyte_at::@3/(byte) ' ' )
  [126] *((byte*) print_char_at::at#4) ← (byte) print_char_at::ch#4
  to:print_char_at::@return
print_char_at::@return: scope:[print_char_at]  from print_char_at
  [127] return 
  to:@return
print_byte_at: scope:[print_byte_at]  from print_sbyte_at::@2
  [128] (byte~) print_byte_at::$0 ← (byte)(signed byte) print_sbyte_at::b#24 >> (byte/signed byte/word/signed word/dword/signed dword) 4
  [129] (byte) print_char_at::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$0)
  [130] (byte*) print_char_at::at#2 ← (byte*) print_byte_at::at#0
  [131] call print_char_at 
  to:print_byte_at::@1
print_byte_at::@1: scope:[print_byte_at]  from print_byte_at
  [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) 15
  [133] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1
  [134] (byte) print_char_at::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$2)
  [135] call print_char_at 
  to:print_byte_at::@return
print_byte_at::@return: scope:[print_byte_at]  from print_byte_at::@1
  [136] return 
  to:@return
rotate_matrix: scope:[rotate_matrix]  from anim::@13
  [137] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0
  [138] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0
  [139] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0
  asm { ldxzr C1: ldamulf_sqr1,x sec C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x sec F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x sec I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 clc G1: adcmulf_sqr1,x sec G2: sbcmulf_sqr2,x clc H1: adcmulf_sqr1,y sec H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapp stapsp1 eor#$ff stapsp2 C3: lda#0 clc A1: adcmulf_sqr1,x sec A2: sbcmulf_sqr2,x clc B1: adcmulf_sqr1,y sec B2: sbcmulf_sqr2,y staxr staXX+1 clc F3: lda#0 clc D1: adcmulf_sqr1,x sec D2: sbcmulf_sqr2,x clc E1: adcmulf_sqr1,y sec E2: sbcmulf_sqr2,y stayr tay lda(psp1),y sec sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sec sbc(psp2),y staxp  }
  to:rotate_matrix::@return
rotate_matrix::@return: scope:[rotate_matrix]  from rotate_matrix
  [141] return 
  to:@return
store_matrix: scope:[store_matrix]  from anim::@27
  asm { ldarotation_matrix+0 starotate_matrix.A1+1 eor#$ff starotate_matrix.A2+1 ldarotation_matrix+1 starotate_matrix.B1+1 eor#$ff starotate_matrix.B2+1 ldarotation_matrix+2 starotate_matrix.C1+1 eor#$ff starotate_matrix.C2+1 ldarotation_matrix+3 starotate_matrix.D1+1 eor#$ff starotate_matrix.D2+1 ldarotation_matrix+4 starotate_matrix.E1+1 eor#$ff starotate_matrix.E2+1 ldarotation_matrix+5 starotate_matrix.F1+1 eor#$ff starotate_matrix.F2+1 ldarotation_matrix+6 starotate_matrix.G1+1 eor#$ff starotate_matrix.G2+1 ldarotation_matrix+7 starotate_matrix.H1+1 eor#$ff starotate_matrix.H2+1 ldarotation_matrix+8 starotate_matrix.I1+1 eor#$ff starotate_matrix.I2+1  }
  to:store_matrix::@return
store_matrix::@return: scope:[store_matrix]  from store_matrix
  [143] return 
  to:@return
calculate_matrix: scope:[calculate_matrix]  from anim::@12
  [144] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (const signed byte) sz#0
  [145] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (const signed byte) sz#0
  [146] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (const signed byte) sz#0
  [147] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (const signed byte) sz#0
  [148] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0
  [149] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0
  [150] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0
  [151] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0
  [152] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0
  [153] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0
  [154] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0)
  [155] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10
  [156] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0)
  [157] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11
  [158] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0)
  [159] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12
  [160] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0)
  [161] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0)
  [162] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0)
  [163] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0)
  [164] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0)
  [165] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17
  [166] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0)
  [167] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0)
  [168] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0)
  [169] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0)
  [170] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0)
  [171] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22
  [172] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0)
  [173] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23
  [174] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0)
  [175] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0)
  [176] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0)
  [177] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0)
  [178] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0)
  [179] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28
  [180] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0)
  [181] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0)
  [182] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0)
  [183] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0)
  [184] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0)
  [185] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33
  [186] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0)
  [187] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34
  to:calculate_matrix::@return
calculate_matrix::@return: scope:[calculate_matrix]  from calculate_matrix
  [188] return 
  to:@return
debug_print_init: scope:[debug_print_init]  from main::@1
  [189] phi()
  [190] call print_cls 
  to:debug_print_init::@5
debug_print_init::@5: scope:[debug_print_init]  from debug_print_init
  [191] phi()
  [192] call print_str_at 
  to:debug_print_init::@6
debug_print_init::@6: scope:[debug_print_init]  from debug_print_init::@5
  [193] phi()
  [194] call print_str_at 
  to:debug_print_init::@7
debug_print_init::@7: scope:[debug_print_init]  from debug_print_init::@6
  [195] phi()
  [196] call print_str_at 
  to:debug_print_init::@8
debug_print_init::@8: scope:[debug_print_init]  from debug_print_init::@7
  [197] phi()
  [198] call print_str_at 
  to:debug_print_init::@9
debug_print_init::@9: scope:[debug_print_init]  from debug_print_init::@8
  [199] phi()
  [200] call print_str_at 
  to:debug_print_init::@10
debug_print_init::@10: scope:[debug_print_init]  from debug_print_init::@9
  [201] phi()
  [202] call print_str_at 
  to:debug_print_init::@11
debug_print_init::@11: scope:[debug_print_init]  from debug_print_init::@10
  [203] phi()
  [204] call print_str_at 
  to:debug_print_init::@12
debug_print_init::@12: scope:[debug_print_init]  from debug_print_init::@11
  [205] phi()
  [206] call print_str_at 
  to:debug_print_init::@13
debug_print_init::@13: scope:[debug_print_init]  from debug_print_init::@12
  [207] phi()
  [208] call print_str_at 
  to:debug_print_init::@14
debug_print_init::@14: scope:[debug_print_init]  from debug_print_init::@13
  [209] phi()
  [210] call print_str_at 
  to:debug_print_init::@15
debug_print_init::@15: scope:[debug_print_init]  from debug_print_init::@14
  [211] phi()
  [212] call print_str_at 
  to:debug_print_init::@16
debug_print_init::@16: scope:[debug_print_init]  from debug_print_init::@15
  [213] phi()
  [214] call print_str_at 
  to:debug_print_init::@1
debug_print_init::@1: scope:[debug_print_init]  from debug_print_init::@16 debug_print_init::@3
  [215] (byte) debug_print_init::i#2 ← phi( debug_print_init::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 debug_print_init::@3/(byte) debug_print_init::i#1 )
  [215] (byte) debug_print_init::c#2 ← phi( debug_print_init::@16/(byte/signed byte/word/signed word/dword/signed dword) 4 debug_print_init::@3/(byte) debug_print_init::c#1 )
  [216] (byte*) print_sbyte_at::at#0 ← (const byte*) debug_print_init::at_line#0 + (byte) debug_print_init::c#2
  [217] (signed byte) print_sbyte_at::b#1 ← *((const signed byte[8]) xs#0 + (byte) debug_print_init::i#2)
  [218] call print_sbyte_at 
  to:debug_print_init::@18
debug_print_init::@18: scope:[debug_print_init]  from debug_print_init::@1
  [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2
  [220] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[8]) ys#0 + (byte) debug_print_init::i#2)
  [221] call print_sbyte_at 
  to:debug_print_init::@19
debug_print_init::@19: scope:[debug_print_init]  from debug_print_init::@18
  [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2
  [223] (signed byte) print_sbyte_at::b#3 ← *((const signed byte[8]) zs#0 + (byte) debug_print_init::i#2)
  [224] call print_sbyte_at 
  to:debug_print_init::@2
debug_print_init::@2: scope:[debug_print_init]  from debug_print_init::@19 debug_print_init::@2
  [225] (byte) debug_print_init::j#2 ← phi( debug_print_init::@2/(byte) debug_print_init::j#1 debug_print_init::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 )
  [226] (byte) debug_print_init::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::i#2
  [227] (byte*~) debug_print_init::$59 ← (const byte*) debug_print_init::at_cols#0 + (byte) debug_print_init::c#2
  [228] (byte*~) debug_print_init::$60 ← (byte*~) debug_print_init::$59 + (byte) debug_print_init::j#2
  [229] *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0
  [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2
  [231] (byte*~) debug_print_init::$64 ← (byte*~) debug_print_init::$63 + (byte) debug_print_init::j#2
  [232] *((byte*~) debug_print_init::$64) ← (byte) debug_print_init::col#0
  [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2
  [234] (byte*~) debug_print_init::$68 ← (byte*~) debug_print_init::$67 + (byte) debug_print_init::j#2
  [235] *((byte*~) debug_print_init::$68) ← (byte) debug_print_init::col#0
  [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2
  [237] (byte*~) debug_print_init::$72 ← (byte*~) debug_print_init::$71 + (byte) debug_print_init::j#2
  [238] *((byte*~) debug_print_init::$72) ← (byte) debug_print_init::col#0
  [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2
  [240] (byte*~) debug_print_init::$76 ← (byte*~) debug_print_init::$75 + (byte) debug_print_init::j#2
  [241] *((byte*~) debug_print_init::$76) ← (byte) debug_print_init::col#0
  [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2
  [243] (byte*~) debug_print_init::$80 ← (byte*~) debug_print_init::$79 + (byte) debug_print_init::j#2
  [244] *((byte*~) debug_print_init::$80) ← (byte) debug_print_init::col#0
  [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2
  [246] (byte*~) debug_print_init::$84 ← (byte*~) debug_print_init::$83 + (byte) debug_print_init::j#2
  [247] *((byte*~) debug_print_init::$84) ← (byte) debug_print_init::col#0
  [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2
  [249] (byte*~) debug_print_init::$88 ← (byte*~) debug_print_init::$87 + (byte) debug_print_init::j#2
  [250] *((byte*~) debug_print_init::$88) ← (byte) debug_print_init::col#0
  [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2
  [252] (byte*~) debug_print_init::$92 ← (byte*~) debug_print_init::$91 + (byte) debug_print_init::j#2
  [253] *((byte*~) debug_print_init::$92) ← (byte) debug_print_init::col#0
  [254] (byte) debug_print_init::j#1 ← ++ (byte) debug_print_init::j#2
  [255] if((byte) debug_print_init::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto debug_print_init::@2
  to:debug_print_init::@3
debug_print_init::@3: scope:[debug_print_init]  from debug_print_init::@2
  [256] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte/signed byte/word/signed word/dword/signed dword) 4
  [257] (byte) debug_print_init::i#1 ← ++ (byte) debug_print_init::i#2
  [258] if((byte) debug_print_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto debug_print_init::@1
  to:debug_print_init::@return
debug_print_init::@return: scope:[debug_print_init]  from debug_print_init::@3
  [259] return 
  to:@return
print_str_at: scope:[print_str_at]  from debug_print_init::@10 debug_print_init::@11 debug_print_init::@12 debug_print_init::@13 debug_print_init::@14 debug_print_init::@15 debug_print_init::@16 debug_print_init::@5 debug_print_init::@6 debug_print_init::@7 debug_print_init::@8 debug_print_init::@9
  [260] (byte*) print_str_at::at#15 ← phi( debug_print_init::@10/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 debug_print_init::@11/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 debug_print_init::@12/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 debug_print_init::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 debug_print_init::@14/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 debug_print_init::@15/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 debug_print_init::@16/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 debug_print_init::@5/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@6/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@8/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 debug_print_init::@9/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 )
  [260] (byte*) print_str_at::str#15 ← phi( debug_print_init::@10/(const string) debug_print_init::str5 debug_print_init::@11/(const string) debug_print_init::str6 debug_print_init::@12/(const string) debug_print_init::str7 debug_print_init::@13/(const string) debug_print_init::str8 debug_print_init::@14/(const string) debug_print_init::str9 debug_print_init::@15/(const string) debug_print_init::str10 debug_print_init::@16/(const string) debug_print_init::str11 debug_print_init::@5/(const string) debug_print_init::str debug_print_init::@6/(const string) debug_print_init::str1 debug_print_init::@7/(const string) debug_print_init::str2 debug_print_init::@8/(const string) debug_print_init::str3 debug_print_init::@9/(const string) debug_print_init::str4 )
  to:print_str_at::@1
print_str_at::@1: scope:[print_str_at]  from print_str_at print_str_at::@2
  [261] (byte*) print_str_at::at#13 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
  [261] (byte*) print_str_at::str#13 ← phi( print_str_at/(byte*) print_str_at::str#15 print_str_at::@2/(byte*) print_str_at::str#0 )
  [262] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2
  to:print_str_at::@return
print_str_at::@return: scope:[print_str_at]  from print_str_at::@1
  [263] return 
  to:@return
print_str_at::@2: scope:[print_str_at]  from print_str_at::@1
  [264] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13)
  [265] (byte*) print_str_at::at#0 ← ++ (byte*) print_str_at::at#13
  [266] (byte*) print_str_at::str#0 ← ++ (byte*) print_str_at::str#13
  to:print_str_at::@1
print_cls: scope:[print_cls]  from debug_print_init
  [267] phi()
  to:print_cls::@1
print_cls::@1: scope:[print_cls]  from print_cls print_cls::@1
  [268] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 )
  [269] *((byte*) print_cls::sc#2) ← (byte) ' '
  [270] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2
  [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls::@1
  [272] return 
  to:@return
sprites_init: scope:[sprites_init]  from main
  [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255
  to:sprites_init::@1
sprites_init::@1: scope:[sprites_init]  from sprites_init sprites_init::@1
  [274] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 )
  [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64
  [276] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0
  [277] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2
  [278] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1
  to:sprites_init::@return
sprites_init::@return: scope:[sprites_init]  from sprites_init::@1
  [279] return 
  to:@return
