
/Users/guman/Documents/Codex/2026-10-05/kai-3/work/v37/package/firmware-candidate/evidence/product-h743/mvt-periodic-product.elf:     file format elf32-littlearm


Disassembly of section .text:

0800a4ac <mvt_vibration_drain>:
 800a4ac:	2800      	cmp	r0, #0
 800a4ae:	d05d      	beq.n	800a56c <mvt_vibration_drain+0xc0>
 800a4b0:	6843      	ldr	r3, [r0, #4]
 800a4b2:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 800a4b6:	4605      	mov	r5, r0
 800a4b8:	f5ad 7d62 	sub.w	sp, sp, #904	@ 0x388
 800a4bc:	2b00      	cmp	r3, #0
 800a4be:	d04f      	beq.n	800a560 <mvt_vibration_drain+0xb4>
 800a4c0:	460c      	mov	r4, r1
 800a4c2:	2900      	cmp	r1, #0
 800a4c4:	d04c      	beq.n	800a560 <mvt_vibration_drain+0xb4>
 800a4c6:	4616      	mov	r6, r2
 800a4c8:	2a00      	cmp	r2, #0
 800a4ca:	d049      	beq.n	800a560 <mvt_vibration_drain+0xb4>
 800a4cc:	680b      	ldr	r3, [r1, #0]
 800a4ce:	f5b3 4f00 	cmp.w	r3, #32768	@ 0x8000
 800a4d2:	d845      	bhi.n	800a560 <mvt_vibration_drain+0xb4>
 800a4d4:	684a      	ldr	r2, [r1, #4]
 800a4d6:	2a00      	cmp	r2, #0
 800a4d8:	d142      	bne.n	800a560 <mvt_vibration_drain+0xb4>
 800a4da:	f5b3 4f00 	cmp.w	r3, #32768	@ 0x8000
 800a4de:	d048      	beq.n	800a572 <mvt_vibration_drain+0xc6>
 800a4e0:	f7ff fe5e 	bl	800a1a0 <capture_config>
 800a4e4:	2800      	cmp	r0, #0
 800a4e6:	d137      	bne.n	800a558 <mvt_vibration_drain+0xac>
 800a4e8:	f10d 0808 	add.w	r8, sp, #8
 800a4ec:	2302      	movs	r3, #2
 800a4ee:	f8a8 0000 	strh.w	r0, [r8]
 800a4f2:	213a      	movs	r1, #58	@ 0x3a
 800a4f4:	4642      	mov	r2, r8
 800a4f6:	4628      	mov	r0, r5
 800a4f8:	f000 f88a 	bl	800a610 <iis3dwb_read_reg>
 800a4fc:	bb60      	cbnz	r0, 800a558 <mvt_vibration_drain+0xac>
 800a4fe:	f898 3001 	ldrb.w	r3, [r8, #1]
 800a502:	f898 2000 	ldrb.w	r2, [r8]
 800a506:	f013 0f48 	tst.w	r3, #72	@ 0x48
 800a50a:	d134      	bne.n	800a576 <mvt_vibration_drain+0xca>
 800a50c:	021f      	lsls	r7, r3, #8
 800a50e:	6823      	ldr	r3, [r4, #0]
 800a510:	f407 7740 	and.w	r7, r7, #768	@ 0x300
 800a514:	f5c3 4300 	rsb	r3, r3, #32768	@ 0x8000
 800a518:	4317      	orrs	r7, r2
 800a51a:	2f80      	cmp	r7, #128	@ 0x80
 800a51c:	bf28      	it	cs
 800a51e:	2780      	movcs	r7, #128	@ 0x80
 800a520:	429f      	cmp	r7, r3
 800a522:	bf88      	it	hi
 800a524:	b29f      	uxthhi	r7, r3
 800a526:	bb5f      	cbnz	r7, 800a580 <mvt_vibration_drain+0xd4>
 800a528:	4628      	mov	r0, r5
 800a52a:	f7ff fe39 	bl	800a1a0 <capture_config>
 800a52e:	4601      	mov	r1, r0
 800a530:	b990      	cbnz	r0, 800a558 <mvt_vibration_drain+0xac>
 800a532:	ae01      	add	r6, sp, #4
 800a534:	2302      	movs	r3, #2
 800a536:	8031      	strh	r1, [r6, #0]
 800a538:	4628      	mov	r0, r5
 800a53a:	4632      	mov	r2, r6
 800a53c:	213a      	movs	r1, #58	@ 0x3a
 800a53e:	f000 f867 	bl	800a610 <iis3dwb_read_reg>
 800a542:	b948      	cbnz	r0, 800a558 <mvt_vibration_drain+0xac>
 800a544:	7873      	ldrb	r3, [r6, #1]
 800a546:	f013 0f48 	tst.w	r3, #72	@ 0x48
 800a54a:	d114      	bne.n	800a576 <mvt_vibration_drain+0xca>
 800a54c:	6820      	ldr	r0, [r4, #0]
 800a54e:	f5a0 4300 	sub.w	r3, r0, #32768	@ 0x8000
 800a552:	4258      	negs	r0, r3
 800a554:	4158      	adcs	r0, r3
 800a556:	e005      	b.n	800a564 <mvt_vibration_drain+0xb8>
 800a558:	6863      	ldr	r3, [r4, #4]
 800a55a:	f043 0304 	orr.w	r3, r3, #4
 800a55e:	6063      	str	r3, [r4, #4]
 800a560:	f04f 30ff 	mov.w	r0, #4294967295	@ 0xffffffff
 800a564:	f50d 7d62 	add.w	sp, sp, #904	@ 0x388
 800a568:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 800a56c:	f04f 30ff 	mov.w	r0, #4294967295	@ 0xffffffff
 800a570:	4770      	bx	lr
 800a572:	2001      	movs	r0, #1
 800a574:	e7f6      	b.n	800a564 <mvt_vibration_drain+0xb8>
 800a576:	6863      	ldr	r3, [r4, #4]
 800a578:	f043 0301 	orr.w	r3, r3, #1
 800a57c:	6063      	str	r3, [r4, #4]
 800a57e:	e7ef      	b.n	800a560 <mvt_vibration_drain+0xb4>
 800a580:	463a      	mov	r2, r7
 800a582:	4641      	mov	r1, r8
 800a584:	4628      	mov	r0, r5
 800a586:	f000 f8ff 	bl	800a788 <iis3dwb_fifo_out_multi_raw_get>
 800a58a:	2800      	cmp	r0, #0
 800a58c:	d1e4      	bne.n	800a558 <mvt_vibration_drain+0xac>
 800a58e:	ebc7 07c7 	rsb	r7, r7, r7, lsl #3
 800a592:	46c4      	mov	ip, r8
 800a594:	f04f 0901 	mov.w	r9, #1
 800a598:	eb08 0e07 	add.w	lr, r8, r7
 800a59c:	f647 586f 	movw	r8, #32111	@ 0x7d6f
 800a5a0:	f64f 27de 	movw	r7, #64222	@ 0xfade
 800a5a4:	f89c 3000 	ldrb.w	r3, [ip]
 800a5a8:	08da      	lsrs	r2, r3, #3
 800a5aa:	2a02      	cmp	r2, #2
 800a5ac:	d1d4      	bne.n	800a558 <mvt_vibration_drain+0xac>
 800a5ae:	f3c3 0341 	ubfx	r3, r3, #1, #2
 800a5b2:	4661      	mov	r1, ip
 800a5b4:	2000      	movs	r0, #0
 800a5b6:	f884 9009 	strb.w	r9, [r4, #9]
 800a5ba:	7223      	strb	r3, [r4, #8]
 800a5bc:	f891 a002 	ldrb.w	sl, [r1, #2]
 800a5c0:	3102      	adds	r1, #2
 800a5c2:	f811 3c01 	ldrb.w	r3, [r1, #-1]
 800a5c6:	4a11      	ldr	r2, [pc, #68]	@ (800a60c <mvt_vibration_drain+0x160>)
 800a5c8:	ea43 230a 	orr.w	r3, r3, sl, lsl #8
 800a5cc:	b21b      	sxth	r3, r3
 800a5ce:	2b00      	cmp	r3, #0
 800a5d0:	ea42 0203 	orr.w	r2, r2, r3
 800a5d4:	bfa8      	it	ge
 800a5d6:	461a      	movge	r2, r3
 800a5d8:	eb02 0308 	add.w	r3, r2, r8
 800a5dc:	42bb      	cmp	r3, r7
 800a5de:	d810      	bhi.n	800a602 <mvt_vibration_drain+0x156>
 800a5e0:	6823      	ldr	r3, [r4, #0]
 800a5e2:	eb03 0a43 	add.w	sl, r3, r3, lsl #1
 800a5e6:	eb06 0a4a 	add.w	sl, r6, sl, lsl #1
 800a5ea:	f82a 2010 	strh.w	r2, [sl, r0, lsl #1]
 800a5ee:	3001      	adds	r0, #1
 800a5f0:	2803      	cmp	r0, #3
 800a5f2:	d1e3      	bne.n	800a5bc <mvt_vibration_drain+0x110>
 800a5f4:	f10c 0c07 	add.w	ip, ip, #7
 800a5f8:	3301      	adds	r3, #1
 800a5fa:	45f4      	cmp	ip, lr
 800a5fc:	6023      	str	r3, [r4, #0]
 800a5fe:	d1d1      	bne.n	800a5a4 <mvt_vibration_drain+0xf8>
 800a600:	e792      	b.n	800a528 <mvt_vibration_drain+0x7c>
 800a602:	6863      	ldr	r3, [r4, #4]
 800a604:	f043 0302 	orr.w	r3, r3, #2
 800a608:	6063      	str	r3, [r4, #4]
 800a60a:	e7a9      	b.n	800a560 <mvt_vibration_drain+0xb4>
 800a60c:	ffff0000 	.word	0xffff0000
