 ;doesnt this look familiar...

 adr r14,vr
 ldmia r14,{r0-r8}

 ;rotation...

 ;y
 ldr r11,cos
 ldr r10,angle
 add r10,r10,#1
 and r10,r10,#255
 str r10,angle
 ldr r9,[r11,r10,lsl #2]!
 ldr r10,[r11,#64*4]
 ;1
 mul r13,r9,r0
 mul r14,r10,r2
 mul r11,r10,r0
 mla r2,r9,r2,r11 ;z
 sub r0,r13,r14 ;y
 mov r0,r0,asr #14
 mov r2,r2,asr #14
 ;2
 mul r13,r9,r3
 mul r14,r10,r5
 mul r11,r10,r3
 mla r5,r9,r5,r11 ;z
 sub r3,r13,r14 ;y
 mov r3,r3,asr #14
 mov r5,r5,asr #14
 ;3
 mul r13,r9,r6
 mul r14,r10,r8
 mul r11,r10,r6
 mla r8,r9,r8,r11 ;z
 sub r6,r13,r14 ;y
 mov r6,r6,asr #14
 mov r8,r8,asr #14

 ;1
 mul r13,r9,r0
 mul r14,r10,r1
 mul r11,r10,r0
 mla r1,r9,r1,r11 ;z
 sub r0,r13,r14 ;y
 mov r0,r0,asr #14
 mov r1,r1,asr #14
 ;2
 mul r13,r9,r3
 mul r14,r10,r4
 mul r11,r10,r3
 mla r4,r9,r4,r11 ;z
 sub r3,r13,r14 ;y
 mov r3,r3,asr #14
 mov r4,r4,asr #14
 ;3
 mul r13,r9,r6
 mul r14,r10,r7
 mul r11,r10,r6
 mla r7,r9,r7,r11 ;z
 sub r6,r13,r14 ;y
 mov r6,r6,asr #14
 mov r7,r7,asr #14


 ;x movement
 ;x
 mov r13,#(1<<14)/xres
 sub r9,r3,r0
 mul r9,r13,r9
 ;y
 sub r10,r4,r1
 mul r10,r13,r10
 ;z
 sub r11,r5,r2
 mul r11,r13,r11
 ;store
 adr r12,vx
 stmia r12!,{r9-r11}

 ;y movement
 ;x
 mov r13,#(1<<14)/yres
 sub r9,r6,r0
 mul r9,r13,r9
 ;y
 sub r10,r7,r1
 mul r10,r13,r10
 ;z
 sub r11,r8,r2
 mul r11,r13,r11
 ;store
 stmia r12,{r9-r11}

 ;set start point
 mov r0,r0,lsl #14
 mov r1,r1,lsl #14
 mov r2,r2,lsl #14


