@ Sqrt routine by Dooby
@ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

.global Sqrt

.arm 
.align 2 
.section .iwram, "ax", %progbits 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@ s32 Sqrt(s32 n)
@
Sqrt:
	stmfd	sp!, {v1, lr}
	mov	lr, a1			@ Copy input somewhere.
	mov	a2, #1
sqrt1:
	cmp	a1, a2
	movhi	a1, a1, lsr #1
	movhi	a2, a2, lsl #1
	bhi	sqrt1
sqrt4:
	mov	a1, lr			@ Pull input back.
	mov	v1, a2
	mov	a4, #0
	mov	a3, a2
sqrt2:
	cmp	a3, a1, lsr #1
	movls	a3, a3, lsl #1
	bcc	sqrt2

sqrt3:
	cmp	a1, a3
	adc	a4, a4, a4
	subcs	a1, a1, a3
	teq	a3, a2
	movne	a3, a3, lsr #1
	bne	sqrt3

	add	a2, a2, a4
	movs	a2, a2, lsr #1
	cmp	a2, v1
	bcc	sqrt4

	mov	a1, v1
	ldmfd	sp!, {v1, lr}
	bx	lr

	.pool


.end

    Source: geocities.com/v_d_d/gba

               ( geocities.com/v_d_d)