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


Disassembly of section .text:

0800aff4 <mvt_vibration_drain>:
 800aff4:	2800      	cmp	r0, #0
 800aff6:	d05d      	beq.n	800b0b4 <mvt_vibration_drain+0xc0>
 800aff8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 800affc:	6843      	ldr	r3, [r0, #4]
 800affe:	4606      	mov	r6, r0
 800b000:	f5ad 7d62 	sub.w	sp, sp, #904	@ 0x388
 800b004:	2b00      	cmp	r3, #0
 800b006:	d04f      	beq.n	800b0a8 <mvt_vibration_drain+0xb4>
 800b008:	460c      	mov	r4, r1
 800b00a:	2900      	cmp	r1, #0
 800b00c:	d04c      	beq.n	800b0a8 <mvt_vibration_drain+0xb4>
 800b00e:	4615      	mov	r5, r2
 800b010:	2a00      	cmp	r2, #0
 800b012:	d049      	beq.n	800b0a8 <mvt_vibration_drain+0xb4>
 800b014:	680b      	ldr	r3, [r1, #0]
 800b016:	f5b3 4f00 	cmp.w	r3, #32768	@ 0x8000
 800b01a:	d845      	bhi.n	800b0a8 <mvt_vibration_drain+0xb4>
 800b01c:	684a      	ldr	r2, [r1, #4]
 800b01e:	2a00      	cmp	r2, #0
 800b020:	d142      	bne.n	800b0a8 <mvt_vibration_drain+0xb4>
 800b022:	f5b3 4f00 	cmp.w	r3, #32768	@ 0x8000
 800b026:	d048      	beq.n	800b0ba <mvt_vibration_drain+0xc6>
 800b028:	f7ff fe58 	bl	800acdc <capture_config>
 800b02c:	2800      	cmp	r0, #0
 800b02e:	d137      	bne.n	800b0a0 <mvt_vibration_drain+0xac>
 800b030:	f10d 0808 	add.w	r8, sp, #8
 800b034:	f8a8 0000 	strh.w	r0, [r8]
 800b038:	2302      	movs	r3, #2
 800b03a:	4642      	mov	r2, r8
 800b03c:	213a      	movs	r1, #58	@ 0x3a
 800b03e:	4630      	mov	r0, r6
 800b040:	f000 f886 	bl	800b150 <iis3dwb_read_reg>
 800b044:	bb60      	cbnz	r0, 800b0a0 <mvt_vibration_drain+0xac>
 800b046:	f898 3001 	ldrb.w	r3, [r8, #1]
 800b04a:	f898 2000 	ldrb.w	r2, [r8]
 800b04e:	f013 0f48 	tst.w	r3, #72	@ 0x48
 800b052:	d134      	bne.n	800b0be <mvt_vibration_drain+0xca>
 800b054:	021f      	lsls	r7, r3, #8
 800b056:	f407 7740 	and.w	r7, r7, #768	@ 0x300
 800b05a:	4317      	orrs	r7, r2
 800b05c:	2f80      	cmp	r7, #128	@ 0x80
 800b05e:	bf28      	it	cs
 800b060:	2780      	movcs	r7, #128	@ 0x80
 800b062:	6823      	ldr	r3, [r4, #0]
 800b064:	f5c3 4300 	rsb	r3, r3, #32768	@ 0x8000
 800b068:	429f      	cmp	r7, r3
 800b06a:	bf88      	it	hi
 800b06c:	b29f      	uxthhi	r7, r3
 800b06e:	bb5f      	cbnz	r7, 800b0c8 <mvt_vibration_drain+0xd4>
 800b070:	4630      	mov	r0, r6
 800b072:	f7ff fe33 	bl	800acdc <capture_config>
 800b076:	4601      	mov	r1, r0
 800b078:	b990      	cbnz	r0, 800b0a0 <mvt_vibration_drain+0xac>
 800b07a:	ad01      	add	r5, sp, #4
 800b07c:	8029      	strh	r1, [r5, #0]
 800b07e:	2302      	movs	r3, #2
 800b080:	4630      	mov	r0, r6
 800b082:	462a      	mov	r2, r5
 800b084:	213a      	movs	r1, #58	@ 0x3a
 800b086:	f000 f863 	bl	800b150 <iis3dwb_read_reg>
 800b08a:	b948      	cbnz	r0, 800b0a0 <mvt_vibration_drain+0xac>
 800b08c:	786b      	ldrb	r3, [r5, #1]
 800b08e:	f013 0f48 	tst.w	r3, #72	@ 0x48
 800b092:	d114      	bne.n	800b0be <mvt_vibration_drain+0xca>
 800b094:	6820      	ldr	r0, [r4, #0]
 800b096:	f5a0 4300 	sub.w	r3, r0, #32768	@ 0x8000
 800b09a:	4258      	negs	r0, r3
 800b09c:	4158      	adcs	r0, r3
 800b09e:	e005      	b.n	800b0ac <mvt_vibration_drain+0xb8>
 800b0a0:	6863      	ldr	r3, [r4, #4]
 800b0a2:	f043 0304 	orr.w	r3, r3, #4
 800b0a6:	6063      	str	r3, [r4, #4]
 800b0a8:	f04f 30ff 	mov.w	r0, #4294967295	@ 0xffffffff
 800b0ac:	f50d 7d62 	add.w	sp, sp, #904	@ 0x388
 800b0b0:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 800b0b4:	f04f 30ff 	mov.w	r0, #4294967295	@ 0xffffffff
 800b0b8:	4770      	bx	lr
 800b0ba:	2001      	movs	r0, #1
 800b0bc:	e7f6      	b.n	800b0ac <mvt_vibration_drain+0xb8>
 800b0be:	6863      	ldr	r3, [r4, #4]
 800b0c0:	f043 0301 	orr.w	r3, r3, #1
 800b0c4:	6063      	str	r3, [r4, #4]
 800b0c6:	e7ef      	b.n	800b0a8 <mvt_vibration_drain+0xb4>
 800b0c8:	463a      	mov	r2, r7
 800b0ca:	4641      	mov	r1, r8
 800b0cc:	4630      	mov	r0, r6
 800b0ce:	f000 f8fb 	bl	800b2c8 <iis3dwb_fifo_out_multi_raw_get>
 800b0d2:	2800      	cmp	r0, #0
 800b0d4:	d1e4      	bne.n	800b0a0 <mvt_vibration_drain+0xac>
 800b0d6:	4640      	mov	r0, r8
 800b0d8:	ebc7 0cc7 	rsb	ip, r7, r7, lsl #3
 800b0dc:	f04f 0801 	mov.w	r8, #1
 800b0e0:	f647 576f 	movw	r7, #32111	@ 0x7d6f
 800b0e4:	f64f 2ede 	movw	lr, #64222	@ 0xfade
 800b0e8:	4484      	add	ip, r0
 800b0ea:	7803      	ldrb	r3, [r0, #0]
 800b0ec:	08da      	lsrs	r2, r3, #3
 800b0ee:	2a02      	cmp	r2, #2
 800b0f0:	d1d6      	bne.n	800b0a0 <mvt_vibration_drain+0xac>
 800b0f2:	4602      	mov	r2, r0
 800b0f4:	2100      	movs	r1, #0
 800b0f6:	f3c3 0341 	ubfx	r3, r3, #1, #2
 800b0fa:	7223      	strb	r3, [r4, #8]
 800b0fc:	f884 8009 	strb.w	r8, [r4, #9]
 800b100:	f892 9002 	ldrb.w	r9, [r2, #2]
 800b104:	7853      	ldrb	r3, [r2, #1]
 800b106:	3202      	adds	r2, #2
 800b108:	ea43 2309 	orr.w	r3, r3, r9, lsl #8
 800b10c:	b21b      	sxth	r3, r3
 800b10e:	2b00      	cmp	r3, #0
 800b110:	bfbc      	itt	lt
 800b112:	ea6f 4303 	mvnlt.w	r3, r3, lsl #16
 800b116:	ea6f 4313 	mvnlt.w	r3, r3, lsr #16
 800b11a:	eb03 0907 	add.w	r9, r3, r7
 800b11e:	45f1      	cmp	r9, lr
 800b120:	d811      	bhi.n	800b146 <mvt_vibration_drain+0x152>
 800b122:	f8d4 9000 	ldr.w	r9, [r4]
 800b126:	eb09 0a49 	add.w	sl, r9, r9, lsl #1
 800b12a:	eb05 0a4a 	add.w	sl, r5, sl, lsl #1
 800b12e:	f82a 3011 	strh.w	r3, [sl, r1, lsl #1]
 800b132:	3101      	adds	r1, #1
 800b134:	2903      	cmp	r1, #3
 800b136:	d1e3      	bne.n	800b100 <mvt_vibration_drain+0x10c>
 800b138:	3007      	adds	r0, #7
 800b13a:	f109 0301 	add.w	r3, r9, #1
 800b13e:	4560      	cmp	r0, ip
 800b140:	6023      	str	r3, [r4, #0]
 800b142:	d1d2      	bne.n	800b0ea <mvt_vibration_drain+0xf6>
 800b144:	e794      	b.n	800b070 <mvt_vibration_drain+0x7c>
 800b146:	6863      	ldr	r3, [r4, #4]
 800b148:	f043 0302 	orr.w	r3, r3, #2
 800b14c:	6063      	str	r3, [r4, #4]
 800b14e:	e7ab      	b.n	800b0a8 <mvt_vibration_drain+0xb4>
