Fix for Ogg playback issues for "Ringing Alarm".
diff --git a/Tremolo/mdct.c b/Tremolo/mdct.c
index 450819b..15140ba 100644
--- a/Tremolo/mdct.c
+++ b/Tremolo/mdct.c
@@ -406,7 +406,7 @@
   mdct_step8(in,n,step>>2);
 #else
   step = mdct_backwardARM(n, in);
-  if (step < 1)
+  if (step <= 1)
     mdct_step8(in,n,step);
 #endif
 }
diff --git a/Tremolo/mdctARM.s b/Tremolo/mdctARM.s
index 2141c4a..d7df88b 100644
--- a/Tremolo/mdctARM.s
+++ b/Tremolo/mdctARM.s
@@ -954,7 +954,7 @@
 	LDMFD	r13,{r0-r3}
 
 mdct_bitreverseARM:
-	@ r0 = points
+	@ r0 = points = n
 	@ r1 = in
 	@ r2 = step
 	@ r3 = shift
@@ -962,7 +962,6 @@
 	MOV	r4, #0			@ r4 = bit = 0
 	ADD	r5, r1, r0, LSL #1	@ r5 = w = x + (n>>1)
 	ADR	r6, bitrev
-	SUB	r3, r3, #2		@ r3 = shift -= 2
 	SUB	r5, r5, #8
 brev_lp:
 	LDRB	r7, [r6, r4, LSR #6]
@@ -971,7 +970,8 @@
 	ADD	r4, r4, #1		@ bit++
 	@ stall XScale
 	ORR	r7, r7, r8, LSL #6	@ r7 = bitrev[bit]
-	ADD	r9, r1, r7, LSR r3	@ r9 = xx = x + (b>>shift)
+	MOV	r7, r7, LSR r3
+	ADD	r9, r1, r7, LSL #2	@ r9 = xx = x + (b>>shift)
 	CMP	r5, r9			@ if (w > xx)
 	LDR	r10,[r5],#-8		@   r10 = w[0]		w -= 2
 	LDRGT	r11,[r5,#12]		@   r11 = w[1]
@@ -988,7 +988,7 @@
 	@ r0 = points
 	@ r1 = in
 	@ r2 = step
-	@ r3 = shift-2
+	@ r3 = shift
 
 	CMP	r2, #4			@ r5 = T = (step>=4) ?
 	LDRGE	r5, =sincos_lookup0	@          sincos_lookup0 +