
/Users/guman/Documents/Codex/2026-09-27/https-www-amazon-com-electric-drill/work/tri-product-continuation-2026-10-10.nosync/drill_timing_A80/firmware/固件/drill_target/build/drill_control_g431cb.elf:     file format elf32-littlearm


Disassembly of section .text:

08000400 <Reset_Handler>:
 8000400:	480c      	ldr	r0, [pc, #48]	@ (8000434 <Reset_Handler+0x34>)
 8000402:	4685      	mov	sp, r0
 8000404:	480c      	ldr	r0, [pc, #48]	@ (8000438 <Reset_Handler+0x38>)
 8000406:	490d      	ldr	r1, [pc, #52]	@ (800043c <Reset_Handler+0x3c>)
 8000408:	4a0d      	ldr	r2, [pc, #52]	@ (8000440 <Reset_Handler+0x40>)
 800040a:	4291      	cmp	r1, r2
 800040c:	d204      	bcs.n	8000418 <Reset_Handler+0x18>
 800040e:	6803      	ldr	r3, [r0, #0]
 8000410:	600b      	str	r3, [r1, #0]
 8000412:	3004      	adds	r0, #4
 8000414:	3104      	adds	r1, #4
 8000416:	e7f8      	b.n	800040a <Reset_Handler+0xa>
 8000418:	490a      	ldr	r1, [pc, #40]	@ (8000444 <Reset_Handler+0x44>)
 800041a:	4a0b      	ldr	r2, [pc, #44]	@ (8000448 <Reset_Handler+0x48>)
 800041c:	2300      	movs	r3, #0
 800041e:	4291      	cmp	r1, r2
 8000420:	d202      	bcs.n	8000428 <Reset_Handler+0x28>
 8000422:	600b      	str	r3, [r1, #0]
 8000424:	3104      	adds	r1, #4
 8000426:	e7fa      	b.n	800041e <Reset_Handler+0x1e>
 8000428:	f000 f812 	bl	8000450 <SystemInit>
 800042c:	f000 f970 	bl	8000710 <main>
 8000430:	e7fe      	b.n	8000430 <Reset_Handler+0x30>
 8000432:	0000      	.short	0x0000
 8000434:	20005800 	.word	0x20005800
 8000438:	08004168 	.word	0x08004168
 800043c:	20000000 	.word	0x20000000
 8000440:	20000004 	.word	0x20000004
 8000444:	20000004 	.word	0x20000004
 8000448:	200001d4 	.word	0x200001d4

0800044c <Default_Handler>:
 800044c:	f7ff bffe 	b.w	800044c <Default_Handler>

08000450 <SystemInit>:
 8000450:	4770      	bx	lr

08000452 <SystemCoreClockUpdate>:
 8000452:	4819      	ldr	r0, [pc, #100]	@ (80004b8 <SystemCoreClockUpdate+0x66>)
 8000454:	6883      	ldr	r3, [r0, #8]
 8000456:	f003 030c 	and.w	r3, r3, #12
 800045a:	2b08      	cmp	r3, #8
 800045c:	b510      	push	{r4, lr}
 800045e:	4c17      	ldr	r4, [pc, #92]	@ (80004bc <SystemCoreClockUpdate+0x6a>)
 8000460:	d00e      	beq.n	8000480 <SystemCoreClockUpdate+0x2e>
 8000462:	2b0c      	cmp	r3, #12
 8000464:	d00e      	beq.n	8000484 <SystemCoreClockUpdate+0x32>
 8000466:	2b04      	cmp	r3, #4
 8000468:	d101      	bne.n	800046e <SystemCoreClockUpdate+0x1c>
 800046a:	4b15      	ldr	r3, [pc, #84]	@ (80004c0 <SystemCoreClockUpdate+0x6e>)
 800046c:	6023      	str	r3, [r4, #0]
 800046e:	6883      	ldr	r3, [r0, #8]
 8000470:	4a14      	ldr	r2, [pc, #80]	@ (80004c4 <SystemCoreClockUpdate+0x72>)
 8000472:	f3c3 1303 	ubfx	r3, r3, #4, #4
 8000476:	5cd2      	ldrb	r2, [r2, r3]
 8000478:	6823      	ldr	r3, [r4, #0]
 800047a:	40d3      	lsrs	r3, r2
 800047c:	6023      	str	r3, [r4, #0]
 800047e:	bd10      	pop	{r4, pc}
 8000480:	4b11      	ldr	r3, [pc, #68]	@ (80004c8 <SystemCoreClockUpdate+0x76>)
 8000482:	e7f3      	b.n	800046c <SystemCoreClockUpdate+0x1a>
 8000484:	68c2      	ldr	r2, [r0, #12]
 8000486:	68c3      	ldr	r3, [r0, #12]
 8000488:	f002 0203 	and.w	r2, r2, #3
 800048c:	2a02      	cmp	r2, #2
 800048e:	f3c3 1303 	ubfx	r3, r3, #4, #4
 8000492:	bf0c      	ite	eq
 8000494:	4a0a      	ldreq	r2, [pc, #40]	@ (80004c0 <SystemCoreClockUpdate+0x6e>)
 8000496:	4a0c      	ldrne	r2, [pc, #48]	@ (80004c8 <SystemCoreClockUpdate+0x76>)
 8000498:	3301      	adds	r3, #1
 800049a:	fbb2 f3f3 	udiv	r3, r2, r3
 800049e:	68c2      	ldr	r2, [r0, #12]
 80004a0:	68c1      	ldr	r1, [r0, #12]
 80004a2:	f3c2 2206 	ubfx	r2, r2, #8, #7
 80004a6:	4353      	muls	r3, r2
 80004a8:	f3c1 6241 	ubfx	r2, r1, #25, #2
 80004ac:	3201      	adds	r2, #1
 80004ae:	0052      	lsls	r2, r2, #1
 80004b0:	fbb3 f3f2 	udiv	r3, r3, r2
 80004b4:	e7da      	b.n	800046c <SystemCoreClockUpdate+0x1a>
 80004b6:	bf00      	nop
 80004b8:	40021000 	.word	0x40021000
 80004bc:	20000000 	.word	0x20000000
 80004c0:	00f42400 	.word	0x00f42400
 80004c4:	08004098 	.word	0x08004098
 80004c8:	016e3600 	.word	0x016e3600

080004cc <memcpy>:
 80004cc:	b510      	push	{r4, lr}
 80004ce:	2300      	movs	r3, #0
 80004d0:	4293      	cmp	r3, r2
 80004d2:	d100      	bne.n	80004d6 <memcpy+0xa>
 80004d4:	bd10      	pop	{r4, pc}
 80004d6:	5ccc      	ldrb	r4, [r1, r3]
 80004d8:	54c4      	strb	r4, [r0, r3]
 80004da:	3301      	adds	r3, #1
 80004dc:	e7f8      	b.n	80004d0 <memcpy+0x4>

080004de <memset>:
 80004de:	4603      	mov	r3, r0
 80004e0:	4402      	add	r2, r0
 80004e2:	4293      	cmp	r3, r2
 80004e4:	d100      	bne.n	80004e8 <memset+0xa>
 80004e6:	4770      	bx	lr
 80004e8:	f803 1b01 	strb.w	r1, [r3], #1
 80004ec:	e7f9      	b.n	80004e2 <memset+0x4>

080004ee <memcmp>:
 80004ee:	b530      	push	{r4, r5, lr}
 80004f0:	2300      	movs	r3, #0
 80004f2:	4293      	cmp	r3, r2
 80004f4:	d101      	bne.n	80004fa <memcmp+0xc>
 80004f6:	2000      	movs	r0, #0
 80004f8:	e006      	b.n	8000508 <memcmp+0x1a>
 80004fa:	5cc5      	ldrb	r5, [r0, r3]
 80004fc:	5ccc      	ldrb	r4, [r1, r3]
 80004fe:	42a5      	cmp	r5, r4
 8000500:	d003      	beq.n	800050a <memcmp+0x1c>
 8000502:	d204      	bcs.n	800050e <memcmp+0x20>
 8000504:	f04f 30ff 	mov.w	r0, #4294967295	@ 0xffffffff
 8000508:	bd30      	pop	{r4, r5, pc}
 800050a:	3301      	adds	r3, #1
 800050c:	e7f1      	b.n	80004f2 <memcmp+0x4>
 800050e:	2001      	movs	r0, #1
 8000510:	e7fa      	b.n	8000508 <memcmp+0x1a>

08000512 <__aeabi_idiv0>:
 8000512:	be00      	bkpt	0x0000
 8000514:	e7fd      	b.n	8000512 <__aeabi_idiv0>

08000516 <__aeabi_ldiv0>:
 8000516:	be00      	bkpt	0x0000
 8000518:	e7fd      	b.n	8000516 <__aeabi_ldiv0>

0800051a <__libc_init_array>:
 800051a:	4770      	bx	lr

0800051c <drill_capture_timing>:
 800051c:	b570      	push	{r4, r5, r6, lr}
 800051e:	4e19      	ldr	r6, [pc, #100]	@ (8000584 <drill_capture_timing+0x68>)
 8000520:	b910      	cbnz	r0, 8000528 <drill_capture_timing+0xc>
 8000522:	6833      	ldr	r3, [r6, #0]
 8000524:	2b01      	cmp	r3, #1
 8000526:	d12c      	bne.n	8000582 <drill_capture_timing+0x66>
 8000528:	6873      	ldr	r3, [r6, #4]
 800052a:	3301      	adds	r3, #1
 800052c:	6073      	str	r3, [r6, #4]
 800052e:	f3bf 8f5f 	dmb	sy
 8000532:	4d15      	ldr	r5, [pc, #84]	@ (8000588 <drill_capture_timing+0x6c>)
 8000534:	4c15      	ldr	r4, [pc, #84]	@ (800058c <drill_capture_timing+0x70>)
 8000536:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8000538:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 800053a:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 800053c:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 800053e:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8000540:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 8000542:	e895 000f 	ldmia.w	r5, {r0, r1, r2, r3}
 8000546:	e884 000f 	stmia.w	r4, {r0, r1, r2, r3}
 800054a:	f104 0510 	add.w	r5, r4, #16
 800054e:	3438      	adds	r4, #56	@ 0x38
 8000550:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 8000552:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 8000554:	e894 0003 	ldmia.w	r4, {r0, r1}
 8000558:	e885 0003 	stmia.w	r5, {r0, r1}
 800055c:	4b0c      	ldr	r3, [pc, #48]	@ (8000590 <drill_capture_timing+0x74>)
 800055e:	781b      	ldrb	r3, [r3, #0]
 8000560:	6633      	str	r3, [r6, #96]	@ 0x60
 8000562:	4b0c      	ldr	r3, [pc, #48]	@ (8000594 <drill_capture_timing+0x78>)
 8000564:	781b      	ldrb	r3, [r3, #0]
 8000566:	6673      	str	r3, [r6, #100]	@ 0x64
 8000568:	f8d6 3088 	ldr.w	r3, [r6, #136]	@ 0x88
 800056c:	66b3      	str	r3, [r6, #104]	@ 0x68
 800056e:	f8d6 308c 	ldr.w	r3, [r6, #140]	@ 0x8c
 8000572:	66f3      	str	r3, [r6, #108]	@ 0x6c
 8000574:	f3bf 8f5f 	dmb	sy
 8000578:	6873      	ldr	r3, [r6, #4]
 800057a:	3301      	adds	r3, #1
 800057c:	6073      	str	r3, [r6, #4]
 800057e:	2300      	movs	r3, #0
 8000580:	6033      	str	r3, [r6, #0]
 8000582:	bd70      	pop	{r4, r5, r6, pc}
 8000584:	20000004 	.word	0x20000004
 8000588:	200000a4 	.word	0x200000a4
 800058c:	2000000c 	.word	0x2000000c
 8000590:	20000120 	.word	0x20000120
 8000594:	200001c0 	.word	0x200001c0

08000598 <drill_safe_boot>:
 8000598:	b510      	push	{r4, lr}
 800059a:	4c15      	ldr	r4, [pc, #84]	@ (80005f0 <drill_safe_boot+0x58>)
 800059c:	6823      	ldr	r3, [r4, #0]
 800059e:	f413 2fa0 	tst.w	r3, #327680	@ 0x50000
 80005a2:	b092      	sub	sp, #72	@ 0x48
 80005a4:	d001      	beq.n	80005aa <drill_safe_boot+0x12>
 80005a6:	bf30      	wfi
 80005a8:	e7fd      	b.n	80005a6 <drill_safe_boot+0xe>
 80005aa:	4912      	ldr	r1, [pc, #72]	@ (80005f4 <drill_safe_boot+0x5c>)
 80005ac:	2248      	movs	r2, #72	@ 0x48
 80005ae:	4668      	mov	r0, sp
 80005b0:	f7ff ff8c 	bl	80004cc <memcpy>
 80005b4:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 80005b6:	f043 0323 	orr.w	r3, r3, #35	@ 0x23
 80005ba:	64e3      	str	r3, [r4, #76]	@ 0x4c
 80005bc:	4668      	mov	r0, sp
 80005be:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 80005c0:	f000 fbc4 	bl	8000d4c <drill_safe_gpio_validate>
 80005c4:	b908      	cbnz	r0, 80005ca <drill_safe_boot+0x32>
 80005c6:	bf30      	wfi
 80005c8:	e7fd      	b.n	80005c6 <drill_safe_boot+0x2e>
 80005ca:	4668      	mov	r0, sp
 80005cc:	f000 fbdb 	bl	8000d86 <drill_safe_gpio_preload>
 80005d0:	b908      	cbnz	r0, 80005d6 <drill_safe_boot+0x3e>
 80005d2:	bf30      	wfi
 80005d4:	e7fd      	b.n	80005d2 <drill_safe_boot+0x3a>
 80005d6:	f3bf 8f4f 	dsb	sy
 80005da:	4668      	mov	r0, sp
 80005dc:	f000 fbe6 	bl	8000dac <drill_safe_gpio_configure_outputs>
 80005e0:	b908      	cbnz	r0, 80005e6 <drill_safe_boot+0x4e>
 80005e2:	bf30      	wfi
 80005e4:	e7fd      	b.n	80005e2 <drill_safe_boot+0x4a>
 80005e6:	f3bf 8f4f 	dsb	sy
 80005ea:	b012      	add	sp, #72	@ 0x48
 80005ec:	bd10      	pop	{r4, pc}
 80005ee:	bf00      	nop
 80005f0:	40021000 	.word	0x40021000
 80005f4:	080040b0 	.word	0x080040b0

080005f8 <drill_foreground_service>:
 80005f8:	b570      	push	{r4, r5, r6, lr}
 80005fa:	4e29      	ldr	r6, [pc, #164]	@ (80006a0 <drill_foreground_service+0xa8>)
 80005fc:	4d29      	ldr	r5, [pc, #164]	@ (80006a4 <drill_foreground_service+0xac>)
 80005fe:	b086      	sub	sp, #24
 8000600:	4604      	mov	r4, r0
 8000602:	f8c6 0090 	str.w	r0, [r6, #144]	@ 0x90
 8000606:	f001 f8c5 	bl	8001794 <drill_spi_poll>
 800060a:	782b      	ldrb	r3, [r5, #0]
 800060c:	2b09      	cmp	r3, #9
 800060e:	d103      	bne.n	8000618 <drill_foreground_service+0x20>
 8000610:	4b25      	ldr	r3, [pc, #148]	@ (80006a8 <drill_foreground_service+0xb0>)
 8000612:	781b      	ldrb	r3, [r3, #0]
 8000614:	2b05      	cmp	r3, #5
 8000616:	d002      	beq.n	800061e <drill_foreground_service+0x26>
 8000618:	4620      	mov	r0, r4
 800061a:	f002 fb93 	bl	8002d44 <drill_config_service>
 800061e:	4620      	mov	r0, r4
 8000620:	f002 f8ac 	bl	800277c <drill_adc_poll>
 8000624:	782b      	ldrb	r3, [r5, #0]
 8000626:	2b09      	cmp	r3, #9
 8000628:	d002      	beq.n	8000630 <drill_foreground_service+0x38>
 800062a:	4620      	mov	r0, r4
 800062c:	f001 fc78 	bl	8001f20 <drill_dual_poll>
 8000630:	4621      	mov	r1, r4
 8000632:	4668      	mov	r0, sp
 8000634:	f001 fede 	bl	80023f4 <drill_dual_stream_take>
 8000638:	b1d0      	cbz	r0, 8000670 <drill_foreground_service+0x78>
 800063a:	f8d6 308c 	ldr.w	r3, [r6, #140]	@ 0x8c
 800063e:	3301      	adds	r3, #1
 8000640:	f8c6 308c 	str.w	r3, [r6, #140]	@ 0x8c
 8000644:	f3bf 8f5f 	dmb	sy
 8000648:	466c      	mov	r4, sp
 800064a:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 800064c:	4d17      	ldr	r5, [pc, #92]	@ (80006ac <drill_foreground_service+0xb4>)
 800064e:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 8000650:	e894 0003 	ldmia.w	r4, {r0, r1}
 8000654:	e885 0003 	stmia.w	r5, {r0, r1}
 8000658:	f3bf 8f5f 	dmb	sy
 800065c:	f8d6 308c 	ldr.w	r3, [r6, #140]	@ 0x8c
 8000660:	3301      	adds	r3, #1
 8000662:	f8c6 308c 	str.w	r3, [r6, #140]	@ 0x8c
 8000666:	f8d6 3088 	ldr.w	r3, [r6, #136]	@ 0x88
 800066a:	3301      	adds	r3, #1
 800066c:	f8c6 3088 	str.w	r3, [r6, #136]	@ 0x88
 8000670:	f001 fe28 	bl	80022c4 <drill_dual_busy>
 8000674:	b110      	cbz	r0, 800067c <drill_foreground_service+0x84>
 8000676:	2000      	movs	r0, #0
 8000678:	b006      	add	sp, #24
 800067a:	bd70      	pop	{r4, r5, r6, pc}
 800067c:	f002 f986 	bl	800298c <drill_adc_busy>
 8000680:	2800      	cmp	r0, #0
 8000682:	d1f8      	bne.n	8000676 <drill_foreground_service+0x7e>
 8000684:	f001 f906 	bl	8001894 <drill_spi_active>
 8000688:	2800      	cmp	r0, #0
 800068a:	d1f4      	bne.n	8000676 <drill_foreground_service+0x7e>
 800068c:	4b06      	ldr	r3, [pc, #24]	@ (80006a8 <drill_foreground_service+0xb0>)
 800068e:	7818      	ldrb	r0, [r3, #0]
 8000690:	3803      	subs	r0, #3
 8000692:	b2c0      	uxtb	r0, r0
 8000694:	2801      	cmp	r0, #1
 8000696:	bf94      	ite	ls
 8000698:	2000      	movls	r0, #0
 800069a:	2001      	movhi	r0, #1
 800069c:	e7ec      	b.n	8000678 <drill_foreground_service+0x80>
 800069e:	bf00      	nop
 80006a0:	20000004 	.word	0x20000004
 80006a4:	20000120 	.word	0x20000120
 80006a8:	200001c0 	.word	0x200001c0
 80006ac:	20000074 	.word	0x20000074

080006b0 <drill_timed_foreground>:
 80006b0:	b513      	push	{r0, r1, r4, lr}
 80006b2:	4604      	mov	r4, r0
 80006b4:	b980      	cbnz	r0, 80006d8 <drill_timed_foreground+0x28>
 80006b6:	f000 f90b 	bl	80008d0 <drill_timing_begin>
 80006ba:	f001 fee1 	bl	8002480 <drill_dual_abort>
 80006be:	f002 f981 	bl	80029c4 <drill_adc_abort>
 80006c2:	f001 f8f3 	bl	80018ac <drill_spi_abort>
 80006c6:	4b10      	ldr	r3, [pc, #64]	@ (8000708 <drill_timed_foreground+0x58>)
 80006c8:	f240 3206 	movw	r2, #774	@ 0x306
 80006cc:	2001      	movs	r0, #1
 80006ce:	801a      	strh	r2, [r3, #0]
 80006d0:	2400      	movs	r4, #0
 80006d2:	f7ff ff23 	bl	800051c <drill_capture_timing>
 80006d6:	e014      	b.n	8000702 <drill_timed_foreground+0x52>
 80006d8:	a801      	add	r0, sp, #4
 80006da:	f000 f8f9 	bl	80008d0 <drill_timing_begin>
 80006de:	2800      	cmp	r0, #0
 80006e0:	d0eb      	beq.n	80006ba <drill_timed_foreground+0xa>
 80006e2:	4b0a      	ldr	r3, [pc, #40]	@ (800070c <drill_timed_foreground+0x5c>)
 80006e4:	9801      	ldr	r0, [sp, #4]
 80006e6:	2201      	movs	r2, #1
 80006e8:	f8c3 2094 	str.w	r2, [r3, #148]	@ 0x94
 80006ec:	f7ff ff84 	bl	80005f8 <drill_foreground_service>
 80006f0:	7020      	strb	r0, [r4, #0]
 80006f2:	f000 f93b 	bl	800096c <drill_timing_end>
 80006f6:	4604      	mov	r4, r0
 80006f8:	2800      	cmp	r0, #0
 80006fa:	d0de      	beq.n	80006ba <drill_timed_foreground+0xa>
 80006fc:	2000      	movs	r0, #0
 80006fe:	f7ff ff0d 	bl	800051c <drill_capture_timing>
 8000702:	4620      	mov	r0, r4
 8000704:	b002      	add	sp, #8
 8000706:	bd10      	pop	{r4, pc}
 8000708:	200001c0 	.word	0x200001c0
 800070c:	20000004 	.word	0x20000004

08000710 <main>:
 8000710:	b507      	push	{r0, r1, r2, lr}
 8000712:	f7ff ff41 	bl	8000598 <drill_safe_boot>
 8000716:	f000 fa51 	bl	8000bbc <drill_clock_init>
 800071a:	b908      	cbnz	r0, 8000720 <main+0x10>
 800071c:	bf30      	wfi
 800071e:	e7fd      	b.n	800071c <main+0xc>
 8000720:	f000 fcec 	bl	80010fc <drill_pwm_stage_init>
 8000724:	4c19      	ldr	r4, [pc, #100]	@ (800078c <main+0x7c>)
 8000726:	f8c4 0098 	str.w	r0, [r4, #152]	@ 0x98
 800072a:	f8d4 0098 	ldr.w	r0, [r4, #152]	@ 0x98
 800072e:	b108      	cbz	r0, 8000734 <main+0x24>
 8000730:	f001 f94c 	bl	80019cc <drill_timebase_init>
 8000734:	f8c4 0094 	str.w	r0, [r4, #148]	@ 0x94
 8000738:	f8d4 3094 	ldr.w	r3, [r4, #148]	@ 0x94
 800073c:	2500      	movs	r5, #0
 800073e:	9501      	str	r5, [sp, #4]
 8000740:	b11b      	cbz	r3, 800074a <main+0x3a>
 8000742:	a801      	add	r0, sp, #4
 8000744:	f001 f99c 	bl	8001a80 <drill_timebase_get>
 8000748:	b908      	cbnz	r0, 800074e <main+0x3e>
 800074a:	bf30      	wfi
 800074c:	e7fd      	b.n	800074a <main+0x3a>
 800074e:	9801      	ldr	r0, [sp, #4]
 8000750:	f000 ff67 	bl	8001622 <drill_spi_init>
 8000754:	f8c4 009c 	str.w	r0, [r4, #156]	@ 0x9c
 8000758:	f8d4 309c 	ldr.w	r3, [r4, #156]	@ 0x9c
 800075c:	b90b      	cbnz	r3, 8000762 <main+0x52>
 800075e:	bf30      	wfi
 8000760:	e7fd      	b.n	800075e <main+0x4e>
 8000762:	f000 f84b 	bl	80007fc <drill_timing_init>
 8000766:	b938      	cbnz	r0, 8000778 <main+0x68>
 8000768:	f001 f8a0 	bl	80018ac <drill_spi_abort>
 800076c:	bf30      	wfi
 800076e:	e7fd      	b.n	800076c <main+0x5c>
 8000770:	f89d 3003 	ldrb.w	r3, [sp, #3]
 8000774:	b103      	cbz	r3, 8000778 <main+0x68>
 8000776:	bf30      	wfi
 8000778:	f10d 0003 	add.w	r0, sp, #3
 800077c:	f88d 5003 	strb.w	r5, [sp, #3]
 8000780:	f7ff ff96 	bl	80006b0 <drill_timed_foreground>
 8000784:	2800      	cmp	r0, #0
 8000786:	d1f3      	bne.n	8000770 <main+0x60>
 8000788:	bf30      	wfi
 800078a:	e7fd      	b.n	8000788 <main+0x78>
 800078c:	20000004 	.word	0x20000004

08000790 <timing_counter_ok>:
 8000790:	4b08      	ldr	r3, [pc, #32]	@ (80007b4 <timing_counter_ok+0x24>)
 8000792:	f8d3 30fc 	ldr.w	r3, [r3, #252]	@ 0xfc
 8000796:	01d9      	lsls	r1, r3, #7
 8000798:	d401      	bmi.n	800079e <timing_counter_ok+0xe>
 800079a:	2000      	movs	r0, #0
 800079c:	4770      	bx	lr
 800079e:	4b06      	ldr	r3, [pc, #24]	@ (80007b8 <timing_counter_ok+0x28>)
 80007a0:	681a      	ldr	r2, [r3, #0]
 80007a2:	07d2      	lsls	r2, r2, #31
 80007a4:	d5f9      	bpl.n	800079a <timing_counter_ok+0xa>
 80007a6:	6818      	ldr	r0, [r3, #0]
 80007a8:	f3c0 6040 	ubfx	r0, r0, #25, #1
 80007ac:	f080 0001 	eor.w	r0, r0, #1
 80007b0:	4770      	bx	lr
 80007b2:	bf00      	nop
 80007b4:	e000ed00 	.word	0xe000ed00
 80007b8:	e0001000 	.word	0xe0001000

080007bc <timing_fail.isra.0>:
 80007bc:	4b0e      	ldr	r3, [pc, #56]	@ (80007f8 <timing_fail.isra.0+0x3c>)
 80007be:	689a      	ldr	r2, [r3, #8]
 80007c0:	07d1      	lsls	r1, r2, #31
 80007c2:	d404      	bmi.n	80007ce <timing_fail.isra.0+0x12>
 80007c4:	689a      	ldr	r2, [r3, #8]
 80007c6:	3201      	adds	r2, #1
 80007c8:	609a      	str	r2, [r3, #8]
 80007ca:	f3bf 8f5f 	dmb	sy
 80007ce:	62d8      	str	r0, [r3, #44]	@ 0x2c
 80007d0:	2201      	movs	r2, #1
 80007d2:	f883 2040 	strb.w	r2, [r3, #64]	@ 0x40
 80007d6:	6bda      	ldr	r2, [r3, #60]	@ 0x3c
 80007d8:	f022 0202 	bic.w	r2, r2, #2
 80007dc:	63da      	str	r2, [r3, #60]	@ 0x3c
 80007de:	689a      	ldr	r2, [r3, #8]
 80007e0:	07d2      	lsls	r2, r2, #31
 80007e2:	d504      	bpl.n	80007ee <timing_fail.isra.0+0x32>
 80007e4:	f3bf 8f5f 	dmb	sy
 80007e8:	689a      	ldr	r2, [r3, #8]
 80007ea:	3201      	adds	r2, #1
 80007ec:	609a      	str	r2, [r3, #8]
 80007ee:	2200      	movs	r2, #0
 80007f0:	f883 2041 	strb.w	r2, [r3, #65]	@ 0x41
 80007f4:	4770      	bx	lr
 80007f6:	bf00      	nop
 80007f8:	200000a4 	.word	0x200000a4

080007fc <drill_timing_init>:
 80007fc:	b5f0      	push	{r4, r5, r6, r7, lr}
 80007fe:	4e2f      	ldr	r6, [pc, #188]	@ (80008bc <drill_timing_init+0xc0>)
 8000800:	f896 3040 	ldrb.w	r3, [r6, #64]	@ 0x40
 8000804:	b093      	sub	sp, #76	@ 0x4c
 8000806:	b94b      	cbnz	r3, 800081c <drill_timing_init+0x20>
 8000808:	f896 1042 	ldrb.w	r1, [r6, #66]	@ 0x42
 800080c:	b141      	cbz	r1, 8000820 <drill_timing_init+0x24>
 800080e:	f7ff ffbf 	bl	8000790 <timing_counter_ok>
 8000812:	4604      	mov	r4, r0
 8000814:	bb38      	cbnz	r0, 8000866 <drill_timing_init+0x6a>
 8000816:	2002      	movs	r0, #2
 8000818:	f7ff ffd0 	bl	80007bc <timing_fail.isra.0>
 800081c:	2400      	movs	r4, #0
 800081e:	e022      	b.n	8000866 <drill_timing_init+0x6a>
 8000820:	2238      	movs	r2, #56	@ 0x38
 8000822:	a804      	add	r0, sp, #16
 8000824:	f7ff fe5b 	bl	80004de <memset>
 8000828:	4b25      	ldr	r3, [pc, #148]	@ (80008c0 <drill_timing_init+0xc4>)
 800082a:	4a26      	ldr	r2, [pc, #152]	@ (80008c4 <drill_timing_init+0xc8>)
 800082c:	2701      	movs	r7, #1
 800082e:	e9cd 3702 	strd	r3, r7, [sp, #8]
 8000832:	f44f 6370 	mov.w	r3, #3840	@ 0xf00
 8000836:	e9cd 230e 	strd	r2, r3, [sp, #56]	@ 0x38
 800083a:	231e      	movs	r3, #30
 800083c:	9310      	str	r3, [sp, #64]	@ 0x40
 800083e:	ad02      	add	r5, sp, #8
 8000840:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8000842:	4634      	mov	r4, r6
 8000844:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 8000846:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8000848:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 800084a:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 800084c:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 800084e:	e895 000f 	ldmia.w	r5, {r0, r1, r2, r3}
 8000852:	e884 000f 	stmia.w	r4, {r0, r1, r2, r3}
 8000856:	a801      	add	r0, sp, #4
 8000858:	f001 f912 	bl	8001a80 <drill_timebase_get>
 800085c:	4604      	mov	r4, r0
 800085e:	b928      	cbnz	r0, 800086c <drill_timing_init+0x70>
 8000860:	4638      	mov	r0, r7
 8000862:	f7ff ffab 	bl	80007bc <timing_fail.isra.0>
 8000866:	4620      	mov	r0, r4
 8000868:	b013      	add	sp, #76	@ 0x4c
 800086a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 800086c:	4d16      	ldr	r5, [pc, #88]	@ (80008c8 <drill_timing_init+0xcc>)
 800086e:	682b      	ldr	r3, [r5, #0]
 8000870:	019b      	lsls	r3, r3, #6
 8000872:	d4d0      	bmi.n	8000816 <drill_timing_init+0x1a>
 8000874:	4a15      	ldr	r2, [pc, #84]	@ (80008cc <drill_timing_init+0xd0>)
 8000876:	f8d2 30fc 	ldr.w	r3, [r2, #252]	@ 0xfc
 800087a:	f043 7380 	orr.w	r3, r3, #16777216	@ 0x1000000
 800087e:	f8c2 30fc 	str.w	r3, [r2, #252]	@ 0xfc
 8000882:	682b      	ldr	r3, [r5, #0]
 8000884:	f043 0301 	orr.w	r3, r3, #1
 8000888:	602b      	str	r3, [r5, #0]
 800088a:	f3bf 8f4f 	dsb	sy
 800088e:	f3bf 8f6f 	isb	sy
 8000892:	f7ff ff7d 	bl	8000790 <timing_counter_ok>
 8000896:	4604      	mov	r4, r0
 8000898:	2800      	cmp	r0, #0
 800089a:	d0bc      	beq.n	8000816 <drill_timing_init+0x1a>
 800089c:	686a      	ldr	r2, [r5, #4]
 800089e:	2320      	movs	r3, #32
 80008a0:	f3bf 8f4f 	dsb	sy
 80008a4:	6869      	ldr	r1, [r5, #4]
 80008a6:	4291      	cmp	r1, r2
 80008a8:	d004      	beq.n	80008b4 <drill_timing_init+0xb8>
 80008aa:	2301      	movs	r3, #1
 80008ac:	f886 3042 	strb.w	r3, [r6, #66]	@ 0x42
 80008b0:	63f3      	str	r3, [r6, #60]	@ 0x3c
 80008b2:	e7d8      	b.n	8000866 <drill_timing_init+0x6a>
 80008b4:	3b01      	subs	r3, #1
 80008b6:	d1f3      	bne.n	80008a0 <drill_timing_init+0xa4>
 80008b8:	e7ad      	b.n	8000816 <drill_timing_init+0x1a>
 80008ba:	bf00      	nop
 80008bc:	200000a4 	.word	0x200000a4
 80008c0:	544d3830 	.word	0x544d3830
 80008c4:	07a12000 	.word	0x07a12000
 80008c8:	e0001000 	.word	0xe0001000
 80008cc:	e000ed00 	.word	0xe000ed00

080008d0 <drill_timing_begin>:
 80008d0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 80008d2:	4c24      	ldr	r4, [pc, #144]	@ (8000964 <drill_timing_begin+0x94>)
 80008d4:	f894 5040 	ldrb.w	r5, [r4, #64]	@ 0x40
 80008d8:	4606      	mov	r6, r0
 80008da:	2d00      	cmp	r5, #0
 80008dc:	d13d      	bne.n	800095a <drill_timing_begin+0x8a>
 80008de:	f894 3042 	ldrb.w	r3, [r4, #66]	@ 0x42
 80008e2:	b11b      	cbz	r3, 80008ec <drill_timing_begin+0x1c>
 80008e4:	f894 3041 	ldrb.w	r3, [r4, #65]	@ 0x41
 80008e8:	b903      	cbnz	r3, 80008ec <drill_timing_begin+0x1c>
 80008ea:	b920      	cbnz	r0, 80008f6 <drill_timing_begin+0x26>
 80008ec:	2004      	movs	r0, #4
 80008ee:	f7ff ff65 	bl	80007bc <timing_fail.isra.0>
 80008f2:	4628      	mov	r0, r5
 80008f4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 80008f6:	4b1c      	ldr	r3, [pc, #112]	@ (8000968 <drill_timing_begin+0x98>)
 80008f8:	685b      	ldr	r3, [r3, #4]
 80008fa:	6463      	str	r3, [r4, #68]	@ 0x44
 80008fc:	68a3      	ldr	r3, [r4, #8]
 80008fe:	3301      	adds	r3, #1
 8000900:	60a3      	str	r3, [r4, #8]
 8000902:	f3bf 8f5f 	dmb	sy
 8000906:	2701      	movs	r7, #1
 8000908:	f884 7041 	strb.w	r7, [r4, #65]	@ 0x41
 800090c:	f7ff ff40 	bl	8000790 <timing_counter_ok>
 8000910:	4605      	mov	r5, r0
 8000912:	b908      	cbnz	r0, 8000918 <drill_timing_begin+0x48>
 8000914:	2002      	movs	r0, #2
 8000916:	e7ea      	b.n	80008ee <drill_timing_begin+0x1e>
 8000918:	f104 0048 	add.w	r0, r4, #72	@ 0x48
 800091c:	f001 f8b0 	bl	8001a80 <drill_timebase_get>
 8000920:	4605      	mov	r5, r0
 8000922:	b908      	cbnz	r0, 8000928 <drill_timing_begin+0x58>
 8000924:	4638      	mov	r0, r7
 8000926:	e7e2      	b.n	80008ee <drill_timing_begin+0x1e>
 8000928:	f894 304c 	ldrb.w	r3, [r4, #76]	@ 0x4c
 800092c:	6ca1      	ldr	r1, [r4, #72]	@ 0x48
 800092e:	b1b3      	cbz	r3, 800095e <drill_timing_begin+0x8e>
 8000930:	f894 304d 	ldrb.w	r3, [r4, #77]	@ 0x4d
 8000934:	b19b      	cbz	r3, 800095e <drill_timing_begin+0x8e>
 8000936:	6d23      	ldr	r3, [r4, #80]	@ 0x50
 8000938:	6c62      	ldr	r2, [r4, #68]	@ 0x44
 800093a:	6d60      	ldr	r0, [r4, #84]	@ 0x54
 800093c:	1acb      	subs	r3, r1, r3
 800093e:	6263      	str	r3, [r4, #36]	@ 0x24
 8000940:	6aa7      	ldr	r7, [r4, #40]	@ 0x28
 8000942:	429f      	cmp	r7, r3
 8000944:	bf38      	it	cc
 8000946:	62a3      	strcc	r3, [r4, #40]	@ 0x28
 8000948:	2b1e      	cmp	r3, #30
 800094a:	d803      	bhi.n	8000954 <drill_timing_begin+0x84>
 800094c:	1a13      	subs	r3, r2, r0
 800094e:	f5b3 6f70 	cmp.w	r3, #3840	@ 0xf00
 8000952:	d904      	bls.n	800095e <drill_timing_begin+0x8e>
 8000954:	2003      	movs	r0, #3
 8000956:	f7ff ff31 	bl	80007bc <timing_fail.isra.0>
 800095a:	2500      	movs	r5, #0
 800095c:	e7c9      	b.n	80008f2 <drill_timing_begin+0x22>
 800095e:	6031      	str	r1, [r6, #0]
 8000960:	e7c7      	b.n	80008f2 <drill_timing_begin+0x22>
 8000962:	bf00      	nop
 8000964:	200000a4 	.word	0x200000a4
 8000968:	e0001000 	.word	0xe0001000

0800096c <drill_timing_end>:
 800096c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 800096e:	4c2d      	ldr	r4, [pc, #180]	@ (8000a24 <drill_timing_end+0xb8>)
 8000970:	f894 3040 	ldrb.w	r3, [r4, #64]	@ 0x40
 8000974:	4606      	mov	r6, r0
 8000976:	b943      	cbnz	r3, 800098a <drill_timing_end+0x1e>
 8000978:	f894 3042 	ldrb.w	r3, [r4, #66]	@ 0x42
 800097c:	b113      	cbz	r3, 8000984 <drill_timing_end+0x18>
 800097e:	f894 3041 	ldrb.w	r3, [r4, #65]	@ 0x41
 8000982:	b923      	cbnz	r3, 800098e <drill_timing_end+0x22>
 8000984:	2004      	movs	r0, #4
 8000986:	f7ff ff19 	bl	80007bc <timing_fail.isra.0>
 800098a:	2500      	movs	r5, #0
 800098c:	e00c      	b.n	80009a8 <drill_timing_end+0x3c>
 800098e:	f7ff feff 	bl	8000790 <timing_counter_ok>
 8000992:	b908      	cbnz	r0, 8000998 <drill_timing_end+0x2c>
 8000994:	2002      	movs	r0, #2
 8000996:	e7f6      	b.n	8000986 <drill_timing_end+0x1a>
 8000998:	a801      	add	r0, sp, #4
 800099a:	f001 f871 	bl	8001a80 <drill_timebase_get>
 800099e:	4605      	mov	r5, r0
 80009a0:	b928      	cbnz	r0, 80009ae <drill_timing_end+0x42>
 80009a2:	2001      	movs	r0, #1
 80009a4:	f7ff ff0a 	bl	80007bc <timing_fail.isra.0>
 80009a8:	4628      	mov	r0, r5
 80009aa:	b003      	add	sp, #12
 80009ac:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80009ae:	4b1e      	ldr	r3, [pc, #120]	@ (8000a28 <drill_timing_end+0xbc>)
 80009b0:	6c61      	ldr	r1, [r4, #68]	@ 0x44
 80009b2:	685b      	ldr	r3, [r3, #4]
 80009b4:	6ca0      	ldr	r0, [r4, #72]	@ 0x48
 80009b6:	9a01      	ldr	r2, [sp, #4]
 80009b8:	1a5b      	subs	r3, r3, r1
 80009ba:	1a12      	subs	r2, r2, r0
 80009bc:	6163      	str	r3, [r4, #20]
 80009be:	61e2      	str	r2, [r4, #28]
 80009c0:	69a7      	ldr	r7, [r4, #24]
 80009c2:	429f      	cmp	r7, r3
 80009c4:	bf38      	it	cc
 80009c6:	61a3      	strcc	r3, [r4, #24]
 80009c8:	6a27      	ldr	r7, [r4, #32]
 80009ca:	4297      	cmp	r7, r2
 80009cc:	bf38      	it	cc
 80009ce:	6222      	strcc	r2, [r4, #32]
 80009d0:	2b00      	cmp	r3, #0
 80009d2:	d0df      	beq.n	8000994 <drill_timing_end+0x28>
 80009d4:	f5b3 6f70 	cmp.w	r3, #3840	@ 0xf00
 80009d8:	d801      	bhi.n	80009de <drill_timing_end+0x72>
 80009da:	2a1e      	cmp	r2, #30
 80009dc:	d901      	bls.n	80009e2 <drill_timing_end+0x76>
 80009de:	2003      	movs	r0, #3
 80009e0:	e7d1      	b.n	8000986 <drill_timing_end+0x1a>
 80009e2:	68e3      	ldr	r3, [r4, #12]
 80009e4:	1c5f      	adds	r7, r3, #1
 80009e6:	bf18      	it	ne
 80009e8:	3301      	addne	r3, #1
 80009ea:	60e3      	str	r3, [r4, #12]
 80009ec:	b926      	cbnz	r6, 80009f8 <drill_timing_end+0x8c>
 80009ee:	6923      	ldr	r3, [r4, #16]
 80009f0:	1c5a      	adds	r2, r3, #1
 80009f2:	bf18      	it	ne
 80009f4:	3301      	addne	r3, #1
 80009f6:	6123      	str	r3, [r4, #16]
 80009f8:	2301      	movs	r3, #1
 80009fa:	f884 304c 	strb.w	r3, [r4, #76]	@ 0x4c
 80009fe:	6be3      	ldr	r3, [r4, #60]	@ 0x3c
 8000a00:	f043 0302 	orr.w	r3, r3, #2
 8000a04:	f086 0601 	eor.w	r6, r6, #1
 8000a08:	63e3      	str	r3, [r4, #60]	@ 0x3c
 8000a0a:	2300      	movs	r3, #0
 8000a0c:	e9c4 0114 	strd	r0, r1, [r4, #80]	@ 0x50
 8000a10:	f884 604d 	strb.w	r6, [r4, #77]	@ 0x4d
 8000a14:	f884 3041 	strb.w	r3, [r4, #65]	@ 0x41
 8000a18:	f3bf 8f5f 	dmb	sy
 8000a1c:	68a3      	ldr	r3, [r4, #8]
 8000a1e:	3301      	adds	r3, #1
 8000a20:	60a3      	str	r3, [r4, #8]
 8000a22:	e7c1      	b.n	80009a8 <drill_timing_end+0x3c>
 8000a24:	200000a4 	.word	0x200000a4
 8000a28:	e0001000 	.word	0xe0001000

08000a2c <drill_clock_available>:
 8000a2c:	4b19      	ldr	r3, [pc, #100]	@ (8000a94 <drill_clock_available+0x68>)
 8000a2e:	681a      	ldr	r2, [r3, #0]
 8000a30:	4b19      	ldr	r3, [pc, #100]	@ (8000a98 <drill_clock_available+0x6c>)
 8000a32:	429a      	cmp	r2, r3
 8000a34:	d001      	beq.n	8000a3a <drill_clock_available+0xe>
 8000a36:	2000      	movs	r0, #0
 8000a38:	4770      	bx	lr
 8000a3a:	4b18      	ldr	r3, [pc, #96]	@ (8000a9c <drill_clock_available+0x70>)
 8000a3c:	4a18      	ldr	r2, [pc, #96]	@ (8000aa0 <drill_clock_available+0x74>)
 8000a3e:	6819      	ldr	r1, [r3, #0]
 8000a40:	400a      	ands	r2, r1
 8000a42:	4918      	ldr	r1, [pc, #96]	@ (8000aa4 <drill_clock_available+0x78>)
 8000a44:	428a      	cmp	r2, r1
 8000a46:	d1f6      	bne.n	8000a36 <drill_clock_available+0xa>
 8000a48:	68d9      	ldr	r1, [r3, #12]
 8000a4a:	4a17      	ldr	r2, [pc, #92]	@ (8000aa8 <drill_clock_available+0x7c>)
 8000a4c:	4291      	cmp	r1, r2
 8000a4e:	d1f2      	bne.n	8000a36 <drill_clock_available+0xa>
 8000a50:	689a      	ldr	r2, [r3, #8]
 8000a52:	f3c2 020d 	ubfx	r2, r2, #0, #14
 8000a56:	2a0f      	cmp	r2, #15
 8000a58:	d1ed      	bne.n	8000a36 <drill_clock_available+0xa>
 8000a5a:	6d9a      	ldr	r2, [r3, #88]	@ 0x58
 8000a5c:	00d2      	lsls	r2, r2, #3
 8000a5e:	d5ea      	bpl.n	8000a36 <drill_clock_available+0xa>
 8000a60:	6b9b      	ldr	r3, [r3, #56]	@ 0x38
 8000a62:	00d8      	lsls	r0, r3, #3
 8000a64:	d4e7      	bmi.n	8000a36 <drill_clock_available+0xa>
 8000a66:	4b11      	ldr	r3, [pc, #68]	@ (8000aac <drill_clock_available+0x80>)
 8000a68:	681a      	ldr	r2, [r3, #0]
 8000a6a:	f402 428c 	and.w	r2, r2, #17920	@ 0x4600
 8000a6e:	f5b2 7f00 	cmp.w	r2, #512	@ 0x200
 8000a72:	d1e0      	bne.n	8000a36 <drill_clock_available+0xa>
 8000a74:	f8d3 2080 	ldr.w	r2, [r3, #128]	@ 0x80
 8000a78:	05d1      	lsls	r1, r2, #23
 8000a7a:	d5dc      	bpl.n	8000a36 <drill_clock_available+0xa>
 8000a7c:	695b      	ldr	r3, [r3, #20]
 8000a7e:	055a      	lsls	r2, r3, #21
 8000a80:	d4d9      	bmi.n	8000a36 <drill_clock_available+0xa>
 8000a82:	4b0b      	ldr	r3, [pc, #44]	@ (8000ab0 <drill_clock_available+0x84>)
 8000a84:	6818      	ldr	r0, [r3, #0]
 8000a86:	f000 000f 	and.w	r0, r0, #15
 8000a8a:	1f03      	subs	r3, r0, #4
 8000a8c:	4258      	negs	r0, r3
 8000a8e:	4158      	adcs	r0, r3
 8000a90:	4770      	bx	lr
 8000a92:	bf00      	nop
 8000a94:	20000000 	.word	0x20000000
 8000a98:	07a12000 	.word	0x07a12000
 8000a9c:	40021000 	.word	0x40021000
 8000aa0:	03050500 	.word	0x03050500
 8000aa4:	03000500 	.word	0x03000500
 8000aa8:	01004032 	.word	0x01004032
 8000aac:	40007000 	.word	0x40007000
 8000ab0:	40022000 	.word	0x40022000

08000ab4 <clock_wait>:
 8000ab4:	b510      	push	{r4, lr}
 8000ab6:	f44f 3380 	mov.w	r3, #65536	@ 0x10000
 8000aba:	f3bf 8f4f 	dsb	sy
 8000abe:	6804      	ldr	r4, [r0, #0]
 8000ac0:	400c      	ands	r4, r1
 8000ac2:	4294      	cmp	r4, r2
 8000ac4:	d003      	beq.n	8000ace <clock_wait+0x1a>
 8000ac6:	3b01      	subs	r3, #1
 8000ac8:	d1f7      	bne.n	8000aba <clock_wait+0x6>
 8000aca:	4618      	mov	r0, r3
 8000acc:	bd10      	pop	{r4, pc}
 8000ace:	2001      	movs	r0, #1
 8000ad0:	e7fc      	b.n	8000acc <clock_wait+0x18>

08000ad2 <clock_pin>:
 8000ad2:	6803      	ldr	r3, [r0, #0]
 8000ad4:	b510      	push	{r4, lr}
 8000ad6:	004c      	lsls	r4, r1, #1
 8000ad8:	40e3      	lsrs	r3, r4
 8000ada:	f003 0303 	and.w	r3, r3, #3
 8000ade:	2b01      	cmp	r3, #1
 8000ae0:	d001      	beq.n	8000ae6 <clock_pin+0x14>
 8000ae2:	2000      	movs	r0, #0
 8000ae4:	bd10      	pop	{r4, pc}
 8000ae6:	fa03 f101 	lsl.w	r1, r3, r1
 8000aea:	6843      	ldr	r3, [r0, #4]
 8000aec:	420b      	tst	r3, r1
 8000aee:	d1f8      	bne.n	8000ae2 <clock_pin+0x10>
 8000af0:	6943      	ldr	r3, [r0, #20]
 8000af2:	420b      	tst	r3, r1
 8000af4:	bf14      	ite	ne
 8000af6:	2301      	movne	r3, #1
 8000af8:	2300      	moveq	r3, #0
 8000afa:	4293      	cmp	r3, r2
 8000afc:	d1f1      	bne.n	8000ae2 <clock_pin+0x10>
 8000afe:	6902      	ldr	r2, [r0, #16]
 8000b00:	420a      	tst	r2, r1
 8000b02:	bf14      	ite	ne
 8000b04:	2001      	movne	r0, #1
 8000b06:	2000      	moveq	r0, #0
 8000b08:	1ac3      	subs	r3, r0, r3
 8000b0a:	4258      	negs	r0, r3
 8000b0c:	4158      	adcs	r0, r3
 8000b0e:	e7e9      	b.n	8000ae4 <clock_pin+0x12>

08000b10 <clock_pins_off>:
 8000b10:	b508      	push	{r3, lr}
 8000b12:	4b27      	ldr	r3, [pc, #156]	@ (8000bb0 <clock_pins_off+0xa0>)
 8000b14:	6cdb      	ldr	r3, [r3, #76]	@ 0x4c
 8000b16:	f003 0323 	and.w	r3, r3, #35	@ 0x23
 8000b1a:	2b23      	cmp	r3, #35	@ 0x23
 8000b1c:	d003      	beq.n	8000b26 <clock_pins_off+0x16>
 8000b1e:	2000      	movs	r0, #0
 8000b20:	f000 0001 	and.w	r0, r0, #1
 8000b24:	bd08      	pop	{r3, pc}
 8000b26:	2200      	movs	r2, #0
 8000b28:	2105      	movs	r1, #5
 8000b2a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000b2e:	f7ff ffd0 	bl	8000ad2 <clock_pin>
 8000b32:	2800      	cmp	r0, #0
 8000b34:	d0f3      	beq.n	8000b1e <clock_pins_off+0xe>
 8000b36:	2200      	movs	r2, #0
 8000b38:	2107      	movs	r1, #7
 8000b3a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000b3e:	f7ff ffc8 	bl	8000ad2 <clock_pin>
 8000b42:	2800      	cmp	r0, #0
 8000b44:	d0eb      	beq.n	8000b1e <clock_pins_off+0xe>
 8000b46:	2200      	movs	r2, #0
 8000b48:	2108      	movs	r1, #8
 8000b4a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000b4e:	f7ff ffc0 	bl	8000ad2 <clock_pin>
 8000b52:	2800      	cmp	r0, #0
 8000b54:	d0e3      	beq.n	8000b1e <clock_pins_off+0xe>
 8000b56:	2200      	movs	r2, #0
 8000b58:	2109      	movs	r1, #9
 8000b5a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000b5e:	f7ff ffb8 	bl	8000ad2 <clock_pin>
 8000b62:	2800      	cmp	r0, #0
 8000b64:	d0db      	beq.n	8000b1e <clock_pins_off+0xe>
 8000b66:	2200      	movs	r2, #0
 8000b68:	210a      	movs	r1, #10
 8000b6a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000b6e:	f7ff ffb0 	bl	8000ad2 <clock_pin>
 8000b72:	2800      	cmp	r0, #0
 8000b74:	d0d3      	beq.n	8000b1e <clock_pins_off+0xe>
 8000b76:	2200      	movs	r2, #0
 8000b78:	480e      	ldr	r0, [pc, #56]	@ (8000bb4 <clock_pins_off+0xa4>)
 8000b7a:	4611      	mov	r1, r2
 8000b7c:	f7ff ffa9 	bl	8000ad2 <clock_pin>
 8000b80:	2800      	cmp	r0, #0
 8000b82:	d0cc      	beq.n	8000b1e <clock_pins_off+0xe>
 8000b84:	480b      	ldr	r0, [pc, #44]	@ (8000bb4 <clock_pins_off+0xa4>)
 8000b86:	2200      	movs	r2, #0
 8000b88:	2101      	movs	r1, #1
 8000b8a:	f7ff ffa2 	bl	8000ad2 <clock_pin>
 8000b8e:	2800      	cmp	r0, #0
 8000b90:	d0c5      	beq.n	8000b1e <clock_pins_off+0xe>
 8000b92:	4809      	ldr	r0, [pc, #36]	@ (8000bb8 <clock_pins_off+0xa8>)
 8000b94:	2200      	movs	r2, #0
 8000b96:	2101      	movs	r1, #1
 8000b98:	f7ff ff9b 	bl	8000ad2 <clock_pin>
 8000b9c:	2800      	cmp	r0, #0
 8000b9e:	d0be      	beq.n	8000b1e <clock_pins_off+0xe>
 8000ba0:	2201      	movs	r2, #1
 8000ba2:	210c      	movs	r1, #12
 8000ba4:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000ba8:	f7ff ff93 	bl	8000ad2 <clock_pin>
 8000bac:	e7b8      	b.n	8000b20 <clock_pins_off+0x10>
 8000bae:	bf00      	nop
 8000bb0:	40021000 	.word	0x40021000
 8000bb4:	48000400 	.word	0x48000400
 8000bb8:	48001400 	.word	0x48001400

08000bbc <drill_clock_init>:
 8000bbc:	b570      	push	{r4, r5, r6, lr}
 8000bbe:	4e58      	ldr	r6, [pc, #352]	@ (8000d20 <drill_clock_init+0x164>)
 8000bc0:	7833      	ldrb	r3, [r6, #0]
 8000bc2:	2b00      	cmp	r3, #0
 8000bc4:	d135      	bne.n	8000c32 <drill_clock_init+0x76>
 8000bc6:	7873      	ldrb	r3, [r6, #1]
 8000bc8:	b13b      	cbz	r3, 8000bda <drill_clock_init+0x1e>
 8000bca:	f7ff ff2f 	bl	8000a2c <drill_clock_available>
 8000bce:	2800      	cmp	r0, #0
 8000bd0:	f000 80a5 	beq.w	8000d1e <drill_clock_init+0x162>
 8000bd4:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 8000bd8:	e79a      	b.n	8000b10 <clock_pins_off>
 8000bda:	f7ff ff99 	bl	8000b10 <clock_pins_off>
 8000bde:	b330      	cbz	r0, 8000c2e <drill_clock_init+0x72>
 8000be0:	4c50      	ldr	r4, [pc, #320]	@ (8000d24 <drill_clock_init+0x168>)
 8000be2:	4b51      	ldr	r3, [pc, #324]	@ (8000d28 <drill_clock_init+0x16c>)
 8000be4:	6822      	ldr	r2, [r4, #0]
 8000be6:	421a      	tst	r2, r3
 8000be8:	d121      	bne.n	8000c2e <drill_clock_init+0x72>
 8000bea:	6823      	ldr	r3, [r4, #0]
 8000bec:	f403 63a0 	and.w	r3, r3, #1280	@ 0x500
 8000bf0:	f5b3 6fa0 	cmp.w	r3, #1280	@ 0x500
 8000bf4:	d11b      	bne.n	8000c2e <drill_clock_init+0x72>
 8000bf6:	68a3      	ldr	r3, [r4, #8]
 8000bf8:	f3c3 030d 	ubfx	r3, r3, #0, #14
 8000bfc:	2b05      	cmp	r3, #5
 8000bfe:	d116      	bne.n	8000c2e <drill_clock_init+0x72>
 8000c00:	6da2      	ldr	r2, [r4, #88]	@ 0x58
 8000c02:	f244 0301 	movw	r3, #16385	@ 0x4001
 8000c06:	421a      	tst	r2, r3
 8000c08:	d111      	bne.n	8000c2e <drill_clock_init+0x72>
 8000c0a:	6e23      	ldr	r3, [r4, #96]	@ 0x60
 8000c0c:	051d      	lsls	r5, r3, #20
 8000c0e:	d40e      	bmi.n	8000c2e <drill_clock_init+0x72>
 8000c10:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 8000c12:	0498      	lsls	r0, r3, #18
 8000c14:	d40b      	bmi.n	8000c2e <drill_clock_init+0x72>
 8000c16:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 8000c18:	0759      	lsls	r1, r3, #29
 8000c1a:	d108      	bne.n	8000c2e <drill_clock_init+0x72>
 8000c1c:	6ba3      	ldr	r3, [r4, #56]	@ 0x38
 8000c1e:	00da      	lsls	r2, r3, #3
 8000c20:	d405      	bmi.n	8000c2e <drill_clock_init+0x72>
 8000c22:	f04f 23e0 	mov.w	r3, #3758153728	@ 0xe000e000
 8000c26:	691a      	ldr	r2, [r3, #16]
 8000c28:	f012 0201 	ands.w	r2, r2, #1
 8000c2c:	d003      	beq.n	8000c36 <drill_clock_init+0x7a>
 8000c2e:	2301      	movs	r3, #1
 8000c30:	7033      	strb	r3, [r6, #0]
 8000c32:	2000      	movs	r0, #0
 8000c34:	e073      	b.n	8000d1e <drill_clock_init+0x162>
 8000c36:	6da3      	ldr	r3, [r4, #88]	@ 0x58
 8000c38:	f043 5380 	orr.w	r3, r3, #268435456	@ 0x10000000
 8000c3c:	65a3      	str	r3, [r4, #88]	@ 0x58
 8000c3e:	6da3      	ldr	r3, [r4, #88]	@ 0x58
 8000c40:	f3bf 8f4f 	dsb	sy
 8000c44:	4d39      	ldr	r5, [pc, #228]	@ (8000d2c <drill_clock_init+0x170>)
 8000c46:	483a      	ldr	r0, [pc, #232]	@ (8000d30 <drill_clock_init+0x174>)
 8000c48:	682b      	ldr	r3, [r5, #0]
 8000c4a:	f423 438c 	bic.w	r3, r3, #17920	@ 0x4600
 8000c4e:	f443 7300 	orr.w	r3, r3, #512	@ 0x200
 8000c52:	602b      	str	r3, [r5, #0]
 8000c54:	f8d5 3080 	ldr.w	r3, [r5, #128]	@ 0x80
 8000c58:	f443 7380 	orr.w	r3, r3, #256	@ 0x100
 8000c5c:	f8c5 3080 	str.w	r3, [r5, #128]	@ 0x80
 8000c60:	f44f 6180 	mov.w	r1, #1024	@ 0x400
 8000c64:	f7ff ff26 	bl	8000ab4 <clock_wait>
 8000c68:	2800      	cmp	r0, #0
 8000c6a:	d0e0      	beq.n	8000c2e <drill_clock_init+0x72>
 8000c6c:	682b      	ldr	r3, [r5, #0]
 8000c6e:	f403 438c 	and.w	r3, r3, #17920	@ 0x4600
 8000c72:	f5b3 7f00 	cmp.w	r3, #512	@ 0x200
 8000c76:	d1da      	bne.n	8000c2e <drill_clock_init+0x72>
 8000c78:	f8d5 3080 	ldr.w	r3, [r5, #128]	@ 0x80
 8000c7c:	05db      	lsls	r3, r3, #23
 8000c7e:	d5d6      	bpl.n	8000c2e <drill_clock_init+0x72>
 8000c80:	482c      	ldr	r0, [pc, #176]	@ (8000d34 <drill_clock_init+0x178>)
 8000c82:	6803      	ldr	r3, [r0, #0]
 8000c84:	f023 030f 	bic.w	r3, r3, #15
 8000c88:	f043 0304 	orr.w	r3, r3, #4
 8000c8c:	6003      	str	r3, [r0, #0]
 8000c8e:	2204      	movs	r2, #4
 8000c90:	210f      	movs	r1, #15
 8000c92:	f7ff ff0f 	bl	8000ab4 <clock_wait>
 8000c96:	2800      	cmp	r0, #0
 8000c98:	d0c9      	beq.n	8000c2e <drill_clock_init+0x72>
 8000c9a:	4b27      	ldr	r3, [pc, #156]	@ (8000d38 <drill_clock_init+0x17c>)
 8000c9c:	60e3      	str	r3, [r4, #12]
 8000c9e:	f3bf 8f4f 	dsb	sy
 8000ca2:	68e2      	ldr	r2, [r4, #12]
 8000ca4:	429a      	cmp	r2, r3
 8000ca6:	d1c2      	bne.n	8000c2e <drill_clock_init+0x72>
 8000ca8:	6823      	ldr	r3, [r4, #0]
 8000caa:	481e      	ldr	r0, [pc, #120]	@ (8000d24 <drill_clock_init+0x168>)
 8000cac:	f043 7380 	orr.w	r3, r3, #16777216	@ 0x1000000
 8000cb0:	f04f 7200 	mov.w	r2, #33554432	@ 0x2000000
 8000cb4:	6023      	str	r3, [r4, #0]
 8000cb6:	4611      	mov	r1, r2
 8000cb8:	f7ff fefc 	bl	8000ab4 <clock_wait>
 8000cbc:	2800      	cmp	r0, #0
 8000cbe:	d0b6      	beq.n	8000c2e <drill_clock_init+0x72>
 8000cc0:	68a3      	ldr	r3, [r4, #8]
 8000cc2:	f023 03f0 	bic.w	r3, r3, #240	@ 0xf0
 8000cc6:	f043 0380 	orr.w	r3, r3, #128	@ 0x80
 8000cca:	60a3      	str	r3, [r4, #8]
 8000ccc:	f3bf 8f4f 	dsb	sy
 8000cd0:	68a3      	ldr	r3, [r4, #8]
 8000cd2:	f003 03f0 	and.w	r3, r3, #240	@ 0xf0
 8000cd6:	2b80      	cmp	r3, #128	@ 0x80
 8000cd8:	d1a9      	bne.n	8000c2e <drill_clock_init+0x72>
 8000cda:	68a3      	ldr	r3, [r4, #8]
 8000cdc:	4817      	ldr	r0, [pc, #92]	@ (8000d3c <drill_clock_init+0x180>)
 8000cde:	f043 0303 	orr.w	r3, r3, #3
 8000ce2:	220c      	movs	r2, #12
 8000ce4:	60a3      	str	r3, [r4, #8]
 8000ce6:	4611      	mov	r1, r2
 8000ce8:	f7ff fee4 	bl	8000ab4 <clock_wait>
 8000cec:	2800      	cmp	r0, #0
 8000cee:	d09e      	beq.n	8000c2e <drill_clock_init+0x72>
 8000cf0:	4a13      	ldr	r2, [pc, #76]	@ (8000d40 <drill_clock_init+0x184>)
 8000cf2:	4b14      	ldr	r3, [pc, #80]	@ (8000d44 <drill_clock_init+0x188>)
 8000cf4:	6013      	str	r3, [r2, #0]
 8000cf6:	68a3      	ldr	r3, [r4, #8]
 8000cf8:	f023 03f0 	bic.w	r3, r3, #240	@ 0xf0
 8000cfc:	60a3      	str	r3, [r4, #8]
 8000cfe:	f3bf 8f4f 	dsb	sy
 8000d02:	f3bf 8f6f 	isb	sy
 8000d06:	4b10      	ldr	r3, [pc, #64]	@ (8000d48 <drill_clock_init+0x18c>)
 8000d08:	6013      	str	r3, [r2, #0]
 8000d0a:	2301      	movs	r3, #1
 8000d0c:	7073      	strb	r3, [r6, #1]
 8000d0e:	f7ff fe8d 	bl	8000a2c <drill_clock_available>
 8000d12:	2800      	cmp	r0, #0
 8000d14:	d08b      	beq.n	8000c2e <drill_clock_init+0x72>
 8000d16:	f7ff fefb 	bl	8000b10 <clock_pins_off>
 8000d1a:	2800      	cmp	r0, #0
 8000d1c:	d087      	beq.n	8000c2e <drill_clock_init+0x72>
 8000d1e:	bd70      	pop	{r4, r5, r6, pc}
 8000d20:	200000fc 	.word	0x200000fc
 8000d24:	40021000 	.word	0x40021000
 8000d28:	03050000 	.word	0x03050000
 8000d2c:	40007000 	.word	0x40007000
 8000d30:	40007014 	.word	0x40007014
 8000d34:	40022000 	.word	0x40022000
 8000d38:	01004032 	.word	0x01004032
 8000d3c:	40021008 	.word	0x40021008
 8000d40:	20000000 	.word	0x20000000
 8000d44:	03d09000 	.word	0x03d09000
 8000d48:	07a12000 	.word	0x07a12000

08000d4c <drill_safe_gpio_validate>:
 8000d4c:	b908      	cbnz	r0, 8000d52 <drill_safe_gpio_validate+0x6>
 8000d4e:	2000      	movs	r0, #0
 8000d50:	4770      	bx	lr
 8000d52:	f100 0248 	add.w	r2, r0, #72	@ 0x48
 8000d56:	6803      	ldr	r3, [r0, #0]
 8000d58:	2b00      	cmp	r3, #0
 8000d5a:	d0f8      	beq.n	8000d4e <drill_safe_gpio_validate+0x2>
 8000d5c:	6843      	ldr	r3, [r0, #4]
 8000d5e:	2b00      	cmp	r3, #0
 8000d60:	d0f5      	beq.n	8000d4e <drill_safe_gpio_validate+0x2>
 8000d62:	6883      	ldr	r3, [r0, #8]
 8000d64:	2b00      	cmp	r3, #0
 8000d66:	d0f2      	beq.n	8000d4e <drill_safe_gpio_validate+0x2>
 8000d68:	68c3      	ldr	r3, [r0, #12]
 8000d6a:	2b00      	cmp	r3, #0
 8000d6c:	d0ef      	beq.n	8000d4e <drill_safe_gpio_validate+0x2>
 8000d6e:	6903      	ldr	r3, [r0, #16]
 8000d70:	2b00      	cmp	r3, #0
 8000d72:	d0ec      	beq.n	8000d4e <drill_safe_gpio_validate+0x2>
 8000d74:	8a81      	ldrh	r1, [r0, #20]
 8000d76:	8ac3      	ldrh	r3, [r0, #22]
 8000d78:	438b      	bics	r3, r1
 8000d7a:	d1e8      	bne.n	8000d4e <drill_safe_gpio_validate+0x2>
 8000d7c:	3018      	adds	r0, #24
 8000d7e:	4290      	cmp	r0, r2
 8000d80:	d1e9      	bne.n	8000d56 <drill_safe_gpio_validate+0xa>
 8000d82:	2001      	movs	r0, #1
 8000d84:	4770      	bx	lr

08000d86 <drill_safe_gpio_preload>:
 8000d86:	b538      	push	{r3, r4, r5, lr}
 8000d88:	4604      	mov	r4, r0
 8000d8a:	f7ff ffdf 	bl	8000d4c <drill_safe_gpio_validate>
 8000d8e:	b160      	cbz	r0, 8000daa <drill_safe_gpio_preload+0x24>
 8000d90:	4623      	mov	r3, r4
 8000d92:	3448      	adds	r4, #72	@ 0x48
 8000d94:	8ada      	ldrh	r2, [r3, #22]
 8000d96:	8a99      	ldrh	r1, [r3, #20]
 8000d98:	691d      	ldr	r5, [r3, #16]
 8000d9a:	ea21 0102 	bic.w	r1, r1, r2
 8000d9e:	3318      	adds	r3, #24
 8000da0:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
 8000da4:	429c      	cmp	r4, r3
 8000da6:	602a      	str	r2, [r5, #0]
 8000da8:	d1f4      	bne.n	8000d94 <drill_safe_gpio_preload+0xe>
 8000daa:	bd38      	pop	{r3, r4, r5, pc}

08000dac <drill_safe_gpio_configure_outputs>:
 8000dac:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 8000db0:	4604      	mov	r4, r0
 8000db2:	f7ff ffcb 	bl	8000d4c <drill_safe_gpio_validate>
 8000db6:	b3a8      	cbz	r0, 8000e24 <drill_safe_gpio_configure_outputs+0x78>
 8000db8:	4623      	mov	r3, r4
 8000dba:	f104 0c48 	add.w	ip, r4, #72	@ 0x48
 8000dbe:	2601      	movs	r6, #1
 8000dc0:	f04f 0e03 	mov.w	lr, #3
 8000dc4:	8a9f      	ldrh	r7, [r3, #20]
 8000dc6:	2200      	movs	r2, #0
 8000dc8:	fa06 f802 	lsl.w	r8, r6, r2
 8000dcc:	ea17 0f08 	tst.w	r7, r8
 8000dd0:	d022      	beq.n	8000e18 <drill_safe_gpio_configure_outputs+0x6c>
 8000dd2:	685d      	ldr	r5, [r3, #4]
 8000dd4:	6829      	ldr	r1, [r5, #0]
 8000dd6:	ea21 0108 	bic.w	r1, r1, r8
 8000dda:	f8d3 8008 	ldr.w	r8, [r3, #8]
 8000dde:	6029      	str	r1, [r5, #0]
 8000de0:	f8d8 1000 	ldr.w	r1, [r8]
 8000de4:	0054      	lsls	r4, r2, #1
 8000de6:	fa0e f504 	lsl.w	r5, lr, r4
 8000dea:	ea21 0105 	bic.w	r1, r1, r5
 8000dee:	f8c8 1000 	str.w	r1, [r8]
 8000df2:	f8d3 800c 	ldr.w	r8, [r3, #12]
 8000df6:	f8d8 1000 	ldr.w	r1, [r8]
 8000dfa:	ea21 0105 	bic.w	r1, r1, r5
 8000dfe:	f8c8 1000 	str.w	r1, [r8]
 8000e02:	f8d3 8000 	ldr.w	r8, [r3]
 8000e06:	f8d8 1000 	ldr.w	r1, [r8]
 8000e0a:	fa06 f404 	lsl.w	r4, r6, r4
 8000e0e:	ea21 0105 	bic.w	r1, r1, r5
 8000e12:	4321      	orrs	r1, r4
 8000e14:	f8c8 1000 	str.w	r1, [r8]
 8000e18:	3201      	adds	r2, #1
 8000e1a:	2a10      	cmp	r2, #16
 8000e1c:	d1d4      	bne.n	8000dc8 <drill_safe_gpio_configure_outputs+0x1c>
 8000e1e:	3318      	adds	r3, #24
 8000e20:	4563      	cmp	r3, ip
 8000e22:	d1cf      	bne.n	8000dc4 <drill_safe_gpio_configure_outputs+0x18>
 8000e24:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

08000e28 <drill_clock_available>:
 8000e28:	4b19      	ldr	r3, [pc, #100]	@ (8000e90 <drill_clock_available+0x68>)
 8000e2a:	681a      	ldr	r2, [r3, #0]
 8000e2c:	4b19      	ldr	r3, [pc, #100]	@ (8000e94 <drill_clock_available+0x6c>)
 8000e2e:	429a      	cmp	r2, r3
 8000e30:	d001      	beq.n	8000e36 <drill_clock_available+0xe>
 8000e32:	2000      	movs	r0, #0
 8000e34:	4770      	bx	lr
 8000e36:	4b18      	ldr	r3, [pc, #96]	@ (8000e98 <drill_clock_available+0x70>)
 8000e38:	4a18      	ldr	r2, [pc, #96]	@ (8000e9c <drill_clock_available+0x74>)
 8000e3a:	6819      	ldr	r1, [r3, #0]
 8000e3c:	400a      	ands	r2, r1
 8000e3e:	4918      	ldr	r1, [pc, #96]	@ (8000ea0 <drill_clock_available+0x78>)
 8000e40:	428a      	cmp	r2, r1
 8000e42:	d1f6      	bne.n	8000e32 <drill_clock_available+0xa>
 8000e44:	68d9      	ldr	r1, [r3, #12]
 8000e46:	4a17      	ldr	r2, [pc, #92]	@ (8000ea4 <drill_clock_available+0x7c>)
 8000e48:	4291      	cmp	r1, r2
 8000e4a:	d1f2      	bne.n	8000e32 <drill_clock_available+0xa>
 8000e4c:	689a      	ldr	r2, [r3, #8]
 8000e4e:	f3c2 020d 	ubfx	r2, r2, #0, #14
 8000e52:	2a0f      	cmp	r2, #15
 8000e54:	d1ed      	bne.n	8000e32 <drill_clock_available+0xa>
 8000e56:	6d9a      	ldr	r2, [r3, #88]	@ 0x58
 8000e58:	00d2      	lsls	r2, r2, #3
 8000e5a:	d5ea      	bpl.n	8000e32 <drill_clock_available+0xa>
 8000e5c:	6b9b      	ldr	r3, [r3, #56]	@ 0x38
 8000e5e:	00d8      	lsls	r0, r3, #3
 8000e60:	d4e7      	bmi.n	8000e32 <drill_clock_available+0xa>
 8000e62:	4b11      	ldr	r3, [pc, #68]	@ (8000ea8 <drill_clock_available+0x80>)
 8000e64:	681a      	ldr	r2, [r3, #0]
 8000e66:	f402 428c 	and.w	r2, r2, #17920	@ 0x4600
 8000e6a:	f5b2 7f00 	cmp.w	r2, #512	@ 0x200
 8000e6e:	d1e0      	bne.n	8000e32 <drill_clock_available+0xa>
 8000e70:	f8d3 2080 	ldr.w	r2, [r3, #128]	@ 0x80
 8000e74:	05d1      	lsls	r1, r2, #23
 8000e76:	d5dc      	bpl.n	8000e32 <drill_clock_available+0xa>
 8000e78:	695b      	ldr	r3, [r3, #20]
 8000e7a:	055a      	lsls	r2, r3, #21
 8000e7c:	d4d9      	bmi.n	8000e32 <drill_clock_available+0xa>
 8000e7e:	4b0b      	ldr	r3, [pc, #44]	@ (8000eac <drill_clock_available+0x84>)
 8000e80:	6818      	ldr	r0, [r3, #0]
 8000e82:	f000 000f 	and.w	r0, r0, #15
 8000e86:	1f03      	subs	r3, r0, #4
 8000e88:	4258      	negs	r0, r3
 8000e8a:	4158      	adcs	r0, r3
 8000e8c:	4770      	bx	lr
 8000e8e:	bf00      	nop
 8000e90:	20000000 	.word	0x20000000
 8000e94:	07a12000 	.word	0x07a12000
 8000e98:	40021000 	.word	0x40021000
 8000e9c:	03050500 	.word	0x03050500
 8000ea0:	03000500 	.word	0x03000500
 8000ea4:	01004032 	.word	0x01004032
 8000ea8:	40007000 	.word	0x40007000
 8000eac:	40022000 	.word	0x40022000

08000eb0 <low_output>:
 8000eb0:	6803      	ldr	r3, [r0, #0]
 8000eb2:	004a      	lsls	r2, r1, #1
 8000eb4:	40d3      	lsrs	r3, r2
 8000eb6:	f003 0303 	and.w	r3, r3, #3
 8000eba:	2b01      	cmp	r3, #1
 8000ebc:	d001      	beq.n	8000ec2 <low_output+0x12>
 8000ebe:	2000      	movs	r0, #0
 8000ec0:	4770      	bx	lr
 8000ec2:	fa03 f101 	lsl.w	r1, r3, r1
 8000ec6:	6843      	ldr	r3, [r0, #4]
 8000ec8:	420b      	tst	r3, r1
 8000eca:	d1f8      	bne.n	8000ebe <low_output+0xe>
 8000ecc:	6943      	ldr	r3, [r0, #20]
 8000ece:	420b      	tst	r3, r1
 8000ed0:	d1f5      	bne.n	8000ebe <low_output+0xe>
 8000ed2:	6903      	ldr	r3, [r0, #16]
 8000ed4:	420b      	tst	r3, r1
 8000ed6:	bf0c      	ite	eq
 8000ed8:	2001      	moveq	r0, #1
 8000eda:	2000      	movne	r0, #0
 8000edc:	4770      	bx	lr

08000ede <sampling_base>:
 8000ede:	4b3d      	ldr	r3, [pc, #244]	@ (8000fd4 <sampling_base+0xf6>)
 8000ee0:	781b      	ldrb	r3, [r3, #0]
 8000ee2:	b510      	push	{r4, lr}
 8000ee4:	b90b      	cbnz	r3, 8000eea <sampling_base+0xc>
 8000ee6:	2000      	movs	r0, #0
 8000ee8:	bd10      	pop	{r4, pc}
 8000eea:	f7ff ff9d 	bl	8000e28 <drill_clock_available>
 8000eee:	2800      	cmp	r0, #0
 8000ef0:	d0f9      	beq.n	8000ee6 <sampling_base+0x8>
 8000ef2:	4c39      	ldr	r4, [pc, #228]	@ (8000fd8 <sampling_base+0xfa>)
 8000ef4:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 8000ef6:	f003 0323 	and.w	r3, r3, #35	@ 0x23
 8000efa:	2b23      	cmp	r3, #35	@ 0x23
 8000efc:	d1f3      	bne.n	8000ee6 <sampling_base+0x8>
 8000efe:	2105      	movs	r1, #5
 8000f00:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000f04:	f7ff ffd4 	bl	8000eb0 <low_output>
 8000f08:	2800      	cmp	r0, #0
 8000f0a:	d0ec      	beq.n	8000ee6 <sampling_base+0x8>
 8000f0c:	2107      	movs	r1, #7
 8000f0e:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000f12:	f7ff ffcd 	bl	8000eb0 <low_output>
 8000f16:	2800      	cmp	r0, #0
 8000f18:	d0e5      	beq.n	8000ee6 <sampling_base+0x8>
 8000f1a:	2108      	movs	r1, #8
 8000f1c:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000f20:	f7ff ffc6 	bl	8000eb0 <low_output>
 8000f24:	2800      	cmp	r0, #0
 8000f26:	d0de      	beq.n	8000ee6 <sampling_base+0x8>
 8000f28:	2109      	movs	r1, #9
 8000f2a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000f2e:	f7ff ffbf 	bl	8000eb0 <low_output>
 8000f32:	2800      	cmp	r0, #0
 8000f34:	d0d7      	beq.n	8000ee6 <sampling_base+0x8>
 8000f36:	210a      	movs	r1, #10
 8000f38:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000f3c:	f7ff ffb8 	bl	8000eb0 <low_output>
 8000f40:	2800      	cmp	r0, #0
 8000f42:	d0d0      	beq.n	8000ee6 <sampling_base+0x8>
 8000f44:	4825      	ldr	r0, [pc, #148]	@ (8000fdc <sampling_base+0xfe>)
 8000f46:	2100      	movs	r1, #0
 8000f48:	f7ff ffb2 	bl	8000eb0 <low_output>
 8000f4c:	2800      	cmp	r0, #0
 8000f4e:	d0ca      	beq.n	8000ee6 <sampling_base+0x8>
 8000f50:	4822      	ldr	r0, [pc, #136]	@ (8000fdc <sampling_base+0xfe>)
 8000f52:	2101      	movs	r1, #1
 8000f54:	f7ff ffac 	bl	8000eb0 <low_output>
 8000f58:	2800      	cmp	r0, #0
 8000f5a:	d0c4      	beq.n	8000ee6 <sampling_base+0x8>
 8000f5c:	4b20      	ldr	r3, [pc, #128]	@ (8000fe0 <sampling_base+0x102>)
 8000f5e:	681a      	ldr	r2, [r3, #0]
 8000f60:	f002 020c 	and.w	r2, r2, #12
 8000f64:	2a04      	cmp	r2, #4
 8000f66:	d1be      	bne.n	8000ee6 <sampling_base+0x8>
 8000f68:	685a      	ldr	r2, [r3, #4]
 8000f6a:	0790      	lsls	r0, r2, #30
 8000f6c:	d4bb      	bmi.n	8000ee6 <sampling_base+0x8>
 8000f6e:	695a      	ldr	r2, [r3, #20]
 8000f70:	691b      	ldr	r3, [r3, #16]
 8000f72:	4053      	eors	r3, r2
 8000f74:	0799      	lsls	r1, r3, #30
 8000f76:	d4b6      	bmi.n	8000ee6 <sampling_base+0x8>
 8000f78:	6e23      	ldr	r3, [r4, #96]	@ 0x60
 8000f7a:	051a      	lsls	r2, r3, #20
 8000f7c:	d5b3      	bpl.n	8000ee6 <sampling_base+0x8>
 8000f7e:	6c23      	ldr	r3, [r4, #64]	@ 0x40
 8000f80:	051b      	lsls	r3, r3, #20
 8000f82:	d4b0      	bmi.n	8000ee6 <sampling_base+0x8>
 8000f84:	4b17      	ldr	r3, [pc, #92]	@ (8000fe4 <sampling_base+0x106>)
 8000f86:	689a      	ldr	r2, [r3, #8]
 8000f88:	2a00      	cmp	r2, #0
 8000f8a:	d1ac      	bne.n	8000ee6 <sampling_base+0x8>
 8000f8c:	68da      	ldr	r2, [r3, #12]
 8000f8e:	2a00      	cmp	r2, #0
 8000f90:	d1a9      	bne.n	8000ee6 <sampling_base+0x8>
 8000f92:	6a1a      	ldr	r2, [r3, #32]
 8000f94:	2a00      	cmp	r2, #0
 8000f96:	d1a6      	bne.n	8000ee6 <sampling_base+0x8>
 8000f98:	6c5a      	ldr	r2, [r3, #68]	@ 0x44
 8000f9a:	2a80      	cmp	r2, #128	@ 0x80
 8000f9c:	d1a3      	bne.n	8000ee6 <sampling_base+0x8>
 8000f9e:	6a9b      	ldr	r3, [r3, #40]	@ 0x28
 8000fa0:	2b07      	cmp	r3, #7
 8000fa2:	d1a0      	bne.n	8000ee6 <sampling_base+0x8>
 8000fa4:	4b0f      	ldr	r3, [pc, #60]	@ (8000fe4 <sampling_base+0x106>)
 8000fa6:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 8000fa8:	f5b2 7fc8 	cmp.w	r2, #400	@ 0x190
 8000fac:	d19b      	bne.n	8000ee6 <sampling_base+0x8>
 8000fae:	6b1a      	ldr	r2, [r3, #48]	@ 0x30
 8000fb0:	2a00      	cmp	r2, #0
 8000fb2:	d198      	bne.n	8000ee6 <sampling_base+0x8>
 8000fb4:	6999      	ldr	r1, [r3, #24]
 8000fb6:	f646 0268 	movw	r2, #26728	@ 0x6868
 8000fba:	4291      	cmp	r1, r2
 8000fbc:	d193      	bne.n	8000ee6 <sampling_base+0x8>
 8000fbe:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 8000fc0:	2a00      	cmp	r2, #0
 8000fc2:	d190      	bne.n	8000ee6 <sampling_base+0x8>
 8000fc4:	6b9a      	ldr	r2, [r3, #56]	@ 0x38
 8000fc6:	2a00      	cmp	r2, #0
 8000fc8:	d18d      	bne.n	8000ee6 <sampling_base+0x8>
 8000fca:	6bd8      	ldr	r0, [r3, #60]	@ 0x3c
 8000fcc:	fab0 f080 	clz	r0, r0
 8000fd0:	0940      	lsrs	r0, r0, #5
 8000fd2:	e789      	b.n	8000ee8 <sampling_base+0xa>
 8000fd4:	200000fe 	.word	0x200000fe
 8000fd8:	40021000 	.word	0x40021000
 8000fdc:	48000400 	.word	0x48000400
 8000fe0:	48001400 	.word	0x48001400
 8000fe4:	40012c00 	.word	0x40012c00

08000fe8 <blank_pins>:
 8000fe8:	b508      	push	{r3, lr}
 8000fea:	4b1f      	ldr	r3, [pc, #124]	@ (8001068 <blank_pins+0x80>)
 8000fec:	6cdb      	ldr	r3, [r3, #76]	@ 0x4c
 8000fee:	f003 0323 	and.w	r3, r3, #35	@ 0x23
 8000ff2:	2b23      	cmp	r3, #35	@ 0x23
 8000ff4:	d136      	bne.n	8001064 <blank_pins+0x7c>
 8000ff6:	2105      	movs	r1, #5
 8000ff8:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8000ffc:	f7ff ff58 	bl	8000eb0 <low_output>
 8001000:	b918      	cbnz	r0, 800100a <blank_pins+0x22>
 8001002:	2000      	movs	r0, #0
 8001004:	f000 0001 	and.w	r0, r0, #1
 8001008:	bd08      	pop	{r3, pc}
 800100a:	4818      	ldr	r0, [pc, #96]	@ (800106c <blank_pins+0x84>)
 800100c:	2101      	movs	r1, #1
 800100e:	f7ff ff4f 	bl	8000eb0 <low_output>
 8001012:	2800      	cmp	r0, #0
 8001014:	d0f5      	beq.n	8001002 <blank_pins+0x1a>
 8001016:	2107      	movs	r1, #7
 8001018:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 800101c:	f7ff ff48 	bl	8000eb0 <low_output>
 8001020:	2800      	cmp	r0, #0
 8001022:	d0ee      	beq.n	8001002 <blank_pins+0x1a>
 8001024:	2108      	movs	r1, #8
 8001026:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 800102a:	f7ff ff41 	bl	8000eb0 <low_output>
 800102e:	2800      	cmp	r0, #0
 8001030:	d0e7      	beq.n	8001002 <blank_pins+0x1a>
 8001032:	2109      	movs	r1, #9
 8001034:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8001038:	f7ff ff3a 	bl	8000eb0 <low_output>
 800103c:	2800      	cmp	r0, #0
 800103e:	d0e0      	beq.n	8001002 <blank_pins+0x1a>
 8001040:	210a      	movs	r1, #10
 8001042:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 8001046:	f7ff ff33 	bl	8000eb0 <low_output>
 800104a:	2800      	cmp	r0, #0
 800104c:	d0d9      	beq.n	8001002 <blank_pins+0x1a>
 800104e:	4808      	ldr	r0, [pc, #32]	@ (8001070 <blank_pins+0x88>)
 8001050:	2100      	movs	r1, #0
 8001052:	f7ff ff2d 	bl	8000eb0 <low_output>
 8001056:	2800      	cmp	r0, #0
 8001058:	d0d3      	beq.n	8001002 <blank_pins+0x1a>
 800105a:	2101      	movs	r1, #1
 800105c:	4804      	ldr	r0, [pc, #16]	@ (8001070 <blank_pins+0x88>)
 800105e:	f7ff ff27 	bl	8000eb0 <low_output>
 8001062:	e7cf      	b.n	8001004 <blank_pins+0x1c>
 8001064:	2000      	movs	r0, #0
 8001066:	e7cf      	b.n	8001008 <blank_pins+0x20>
 8001068:	40021000 	.word	0x40021000
 800106c:	48001400 	.word	0x48001400
 8001070:	48000400 	.word	0x48000400

08001074 <drill_pwm_stage_available>:
 8001074:	b508      	push	{r3, lr}
 8001076:	4b1e      	ldr	r3, [pc, #120]	@ (80010f0 <drill_pwm_stage_available+0x7c>)
 8001078:	781b      	ldrb	r3, [r3, #0]
 800107a:	b90b      	cbnz	r3, 8001080 <drill_pwm_stage_available+0xc>
 800107c:	2000      	movs	r0, #0
 800107e:	bd08      	pop	{r3, pc}
 8001080:	f7ff fed2 	bl	8000e28 <drill_clock_available>
 8001084:	2800      	cmp	r0, #0
 8001086:	d0f9      	beq.n	800107c <drill_pwm_stage_available+0x8>
 8001088:	f7ff ffae 	bl	8000fe8 <blank_pins>
 800108c:	2800      	cmp	r0, #0
 800108e:	d0f5      	beq.n	800107c <drill_pwm_stage_available+0x8>
 8001090:	4b18      	ldr	r3, [pc, #96]	@ (80010f4 <drill_pwm_stage_available+0x80>)
 8001092:	6e1a      	ldr	r2, [r3, #96]	@ 0x60
 8001094:	0511      	lsls	r1, r2, #20
 8001096:	d5f1      	bpl.n	800107c <drill_pwm_stage_available+0x8>
 8001098:	6c1b      	ldr	r3, [r3, #64]	@ 0x40
 800109a:	051a      	lsls	r2, r3, #20
 800109c:	d4ee      	bmi.n	800107c <drill_pwm_stage_available+0x8>
 800109e:	4b16      	ldr	r3, [pc, #88]	@ (80010f8 <drill_pwm_stage_available+0x84>)
 80010a0:	681a      	ldr	r2, [r3, #0]
 80010a2:	2ae0      	cmp	r2, #224	@ 0xe0
 80010a4:	d1ea      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010a6:	685a      	ldr	r2, [r3, #4]
 80010a8:	2a00      	cmp	r2, #0
 80010aa:	d1e7      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010ac:	689a      	ldr	r2, [r3, #8]
 80010ae:	2a00      	cmp	r2, #0
 80010b0:	d1e4      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010b2:	68da      	ldr	r2, [r3, #12]
 80010b4:	2a00      	cmp	r2, #0
 80010b6:	d1e1      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010b8:	6a1b      	ldr	r3, [r3, #32]
 80010ba:	2b00      	cmp	r3, #0
 80010bc:	d1de      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010be:	4b0e      	ldr	r3, [pc, #56]	@ (80010f8 <drill_pwm_stage_available+0x84>)
 80010c0:	6c5a      	ldr	r2, [r3, #68]	@ 0x44
 80010c2:	2a80      	cmp	r2, #128	@ 0x80
 80010c4:	d1da      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010c6:	6a9a      	ldr	r2, [r3, #40]	@ 0x28
 80010c8:	2a07      	cmp	r2, #7
 80010ca:	d1d7      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010cc:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 80010ce:	f5b2 7fc8 	cmp.w	r2, #400	@ 0x190
 80010d2:	d1d3      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010d4:	6b1a      	ldr	r2, [r3, #48]	@ 0x30
 80010d6:	2a00      	cmp	r2, #0
 80010d8:	d1d0      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010da:	6999      	ldr	r1, [r3, #24]
 80010dc:	f646 0268 	movw	r2, #26728	@ 0x6868
 80010e0:	4291      	cmp	r1, r2
 80010e2:	d1cb      	bne.n	800107c <drill_pwm_stage_available+0x8>
 80010e4:	69d8      	ldr	r0, [r3, #28]
 80010e6:	f1a0 0368 	sub.w	r3, r0, #104	@ 0x68
 80010ea:	4258      	negs	r0, r3
 80010ec:	4158      	adcs	r0, r3
 80010ee:	e7c6      	b.n	800107e <drill_pwm_stage_available+0xa>
 80010f0:	200000fe 	.word	0x200000fe
 80010f4:	40021000 	.word	0x40021000
 80010f8:	40012c00 	.word	0x40012c00

080010fc <drill_pwm_stage_init>:
 80010fc:	b510      	push	{r4, lr}
 80010fe:	4c27      	ldr	r4, [pc, #156]	@ (800119c <drill_pwm_stage_init+0xa0>)
 8001100:	7823      	ldrb	r3, [r4, #0]
 8001102:	b11b      	cbz	r3, 800110c <drill_pwm_stage_init+0x10>
 8001104:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 8001108:	f7ff bfb4 	b.w	8001074 <drill_pwm_stage_available>
 800110c:	f7ff fe8c 	bl	8000e28 <drill_clock_available>
 8001110:	2800      	cmp	r0, #0
 8001112:	d041      	beq.n	8001198 <drill_pwm_stage_init+0x9c>
 8001114:	f7ff ff68 	bl	8000fe8 <blank_pins>
 8001118:	2800      	cmp	r0, #0
 800111a:	d03d      	beq.n	8001198 <drill_pwm_stage_init+0x9c>
 800111c:	4b20      	ldr	r3, [pc, #128]	@ (80011a0 <drill_pwm_stage_init+0xa4>)
 800111e:	6e1a      	ldr	r2, [r3, #96]	@ 0x60
 8001120:	0512      	lsls	r2, r2, #20
 8001122:	d439      	bmi.n	8001198 <drill_pwm_stage_init+0x9c>
 8001124:	6e1a      	ldr	r2, [r3, #96]	@ 0x60
 8001126:	f442 6200 	orr.w	r2, r2, #2048	@ 0x800
 800112a:	661a      	str	r2, [r3, #96]	@ 0x60
 800112c:	6e1a      	ldr	r2, [r3, #96]	@ 0x60
 800112e:	f3bf 8f4f 	dsb	sy
 8001132:	6c1a      	ldr	r2, [r3, #64]	@ 0x40
 8001134:	f412 6200 	ands.w	r2, r2, #2048	@ 0x800
 8001138:	d12e      	bne.n	8001198 <drill_pwm_stage_init+0x9c>
 800113a:	6c19      	ldr	r1, [r3, #64]	@ 0x40
 800113c:	f441 6100 	orr.w	r1, r1, #2048	@ 0x800
 8001140:	6419      	str	r1, [r3, #64]	@ 0x40
 8001142:	f3bf 8f4f 	dsb	sy
 8001146:	6c19      	ldr	r1, [r3, #64]	@ 0x40
 8001148:	f421 6100 	bic.w	r1, r1, #2048	@ 0x800
 800114c:	6419      	str	r1, [r3, #64]	@ 0x40
 800114e:	f3bf 8f4f 	dsb	sy
 8001152:	f5a3 4364 	sub.w	r3, r3, #58368	@ 0xe400
 8001156:	2107      	movs	r1, #7
 8001158:	601a      	str	r2, [r3, #0]
 800115a:	621a      	str	r2, [r3, #32]
 800115c:	645a      	str	r2, [r3, #68]	@ 0x44
 800115e:	60da      	str	r2, [r3, #12]
 8001160:	605a      	str	r2, [r3, #4]
 8001162:	609a      	str	r2, [r3, #8]
 8001164:	6299      	str	r1, [r3, #40]	@ 0x28
 8001166:	f44f 71c8 	mov.w	r1, #400	@ 0x190
 800116a:	62d9      	str	r1, [r3, #44]	@ 0x2c
 800116c:	f646 0168 	movw	r1, #26728	@ 0x6868
 8001170:	631a      	str	r2, [r3, #48]	@ 0x30
 8001172:	625a      	str	r2, [r3, #36]	@ 0x24
 8001174:	635a      	str	r2, [r3, #52]	@ 0x34
 8001176:	639a      	str	r2, [r3, #56]	@ 0x38
 8001178:	63da      	str	r2, [r3, #60]	@ 0x3c
 800117a:	641a      	str	r2, [r3, #64]	@ 0x40
 800117c:	6199      	str	r1, [r3, #24]
 800117e:	2168      	movs	r1, #104	@ 0x68
 8001180:	61d9      	str	r1, [r3, #28]
 8001182:	2180      	movs	r1, #128	@ 0x80
 8001184:	6459      	str	r1, [r3, #68]	@ 0x44
 8001186:	21e0      	movs	r1, #224	@ 0xe0
 8001188:	6019      	str	r1, [r3, #0]
 800118a:	2101      	movs	r1, #1
 800118c:	6159      	str	r1, [r3, #20]
 800118e:	611a      	str	r2, [r3, #16]
 8001190:	f3bf 8f4f 	dsb	sy
 8001194:	7021      	strb	r1, [r4, #0]
 8001196:	e7b5      	b.n	8001104 <drill_pwm_stage_init+0x8>
 8001198:	2000      	movs	r0, #0
 800119a:	bd10      	pop	{r4, pc}
 800119c:	200000fe 	.word	0x200000fe
 80011a0:	40021000 	.word	0x40021000

080011a4 <drill_pwm_stage_write>:
 80011a4:	b570      	push	{r4, r5, r6, lr}
 80011a6:	4606      	mov	r6, r0
 80011a8:	460d      	mov	r5, r1
 80011aa:	4614      	mov	r4, r2
 80011ac:	f7ff ff62 	bl	8001074 <drill_pwm_stage_available>
 80011b0:	b340      	cbz	r0, 8001204 <drill_pwm_stage_write+0x60>
 80011b2:	4b15      	ldr	r3, [pc, #84]	@ (8001208 <drill_pwm_stage_write+0x64>)
 80011b4:	f44f 72c8 	mov.w	r2, #400	@ 0x190
 80011b8:	fb02 f006 	mul.w	r0, r2, r6
 80011bc:	4e13      	ldr	r6, [pc, #76]	@ (800120c <drill_pwm_stage_write+0x68>)
 80011be:	18c1      	adds	r1, r0, r3
 80011c0:	42b1      	cmp	r1, r6
 80011c2:	d81f      	bhi.n	8001204 <drill_pwm_stage_write+0x60>
 80011c4:	fb02 f105 	mul.w	r1, r2, r5
 80011c8:	18cd      	adds	r5, r1, r3
 80011ca:	42b5      	cmp	r5, r6
 80011cc:	d81a      	bhi.n	8001204 <drill_pwm_stage_write+0x60>
 80011ce:	4362      	muls	r2, r4
 80011d0:	4413      	add	r3, r2
 80011d2:	42b3      	cmp	r3, r6
 80011d4:	d816      	bhi.n	8001204 <drill_pwm_stage_write+0x60>
 80011d6:	f647 74ff 	movw	r4, #32767	@ 0x7fff
 80011da:	f64f 73ff 	movw	r3, #65535	@ 0xffff
 80011de:	4420      	add	r0, r4
 80011e0:	4421      	add	r1, r4
 80011e2:	fbb0 f0f3 	udiv	r0, r0, r3
 80011e6:	fbb1 f1f3 	udiv	r1, r1, r3
 80011ea:	4422      	add	r2, r4
 80011ec:	fbb2 f2f3 	udiv	r2, r2, r3
 80011f0:	4b07      	ldr	r3, [pc, #28]	@ (8001210 <drill_pwm_stage_write+0x6c>)
 80011f2:	6358      	str	r0, [r3, #52]	@ 0x34
 80011f4:	6399      	str	r1, [r3, #56]	@ 0x38
 80011f6:	63da      	str	r2, [r3, #60]	@ 0x3c
 80011f8:	f3bf 8f4f 	dsb	sy
 80011fc:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 8001200:	f7ff bf38 	b.w	8001074 <drill_pwm_stage_available>
 8001204:	2000      	movs	r0, #0
 8001206:	bd70      	pop	{r4, r5, r6, pc}
 8001208:	ffef8010 	.word	0xffef8010
 800120c:	016efe90 	.word	0x016efe90
 8001210:	40012c00 	.word	0x40012c00

08001214 <drill_pwm_sampling_available>:
 8001214:	b508      	push	{r3, lr}
 8001216:	4b11      	ldr	r3, [pc, #68]	@ (800125c <drill_pwm_sampling_available+0x48>)
 8001218:	785b      	ldrb	r3, [r3, #1]
 800121a:	b90b      	cbnz	r3, 8001220 <drill_pwm_sampling_available+0xc>
 800121c:	2000      	movs	r0, #0
 800121e:	bd08      	pop	{r3, pc}
 8001220:	f7ff fe5d 	bl	8000ede <sampling_base>
 8001224:	2800      	cmp	r0, #0
 8001226:	d0f9      	beq.n	800121c <drill_pwm_sampling_available+0x8>
 8001228:	4b0d      	ldr	r3, [pc, #52]	@ (8001260 <drill_pwm_sampling_available+0x4c>)
 800122a:	681a      	ldr	r2, [r3, #0]
 800122c:	f022 0211 	bic.w	r2, r2, #17
 8001230:	2ae0      	cmp	r2, #224	@ 0xe0
 8001232:	d1f3      	bne.n	800121c <drill_pwm_sampling_available+0x8>
 8001234:	685a      	ldr	r2, [r3, #4]
 8001236:	f5b2 0fe0 	cmp.w	r2, #7340032	@ 0x700000
 800123a:	d1ef      	bne.n	800121c <drill_pwm_sampling_available+0x8>
 800123c:	69d9      	ldr	r1, [r3, #28]
 800123e:	f647 0268 	movw	r2, #30824	@ 0x7868
 8001242:	4291      	cmp	r1, r2
 8001244:	d1ea      	bne.n	800121c <drill_pwm_sampling_available+0x8>
 8001246:	6c1a      	ldr	r2, [r3, #64]	@ 0x40
 8001248:	2ac8      	cmp	r2, #200	@ 0xc8
 800124a:	d1e7      	bne.n	800121c <drill_pwm_sampling_available+0x8>
 800124c:	6a58      	ldr	r0, [r3, #36]	@ 0x24
 800124e:	f5b0 7fc8 	cmp.w	r0, #400	@ 0x190
 8001252:	bf8c      	ite	hi
 8001254:	2000      	movhi	r0, #0
 8001256:	2001      	movls	r0, #1
 8001258:	e7e1      	b.n	800121e <drill_pwm_sampling_available+0xa>
 800125a:	bf00      	nop
 800125c:	200000fe 	.word	0x200000fe
 8001260:	40012c00 	.word	0x40012c00

08001264 <drill_pwm_sampling_arm>:
 8001264:	b510      	push	{r4, lr}
 8001266:	4c12      	ldr	r4, [pc, #72]	@ (80012b0 <drill_pwm_sampling_arm+0x4c>)
 8001268:	7863      	ldrb	r3, [r4, #1]
 800126a:	b9fb      	cbnz	r3, 80012ac <drill_pwm_sampling_arm+0x48>
 800126c:	f7ff fe37 	bl	8000ede <sampling_base>
 8001270:	b1e0      	cbz	r0, 80012ac <drill_pwm_sampling_arm+0x48>
 8001272:	4b10      	ldr	r3, [pc, #64]	@ (80012b4 <drill_pwm_sampling_arm+0x50>)
 8001274:	681a      	ldr	r2, [r3, #0]
 8001276:	2ae0      	cmp	r2, #224	@ 0xe0
 8001278:	d118      	bne.n	80012ac <drill_pwm_sampling_arm+0x48>
 800127a:	685a      	ldr	r2, [r3, #4]
 800127c:	b9b2      	cbnz	r2, 80012ac <drill_pwm_sampling_arm+0x48>
 800127e:	69da      	ldr	r2, [r3, #28]
 8001280:	2a68      	cmp	r2, #104	@ 0x68
 8001282:	d113      	bne.n	80012ac <drill_pwm_sampling_arm+0x48>
 8001284:	6c19      	ldr	r1, [r3, #64]	@ 0x40
 8001286:	b989      	cbnz	r1, 80012ac <drill_pwm_sampling_arm+0x48>
 8001288:	22c8      	movs	r2, #200	@ 0xc8
 800128a:	641a      	str	r2, [r3, #64]	@ 0x40
 800128c:	f647 0268 	movw	r2, #30824	@ 0x7868
 8001290:	61da      	str	r2, [r3, #28]
 8001292:	f44f 02e0 	mov.w	r2, #7340032	@ 0x700000
 8001296:	605a      	str	r2, [r3, #4]
 8001298:	2201      	movs	r2, #1
 800129a:	615a      	str	r2, [r3, #20]
 800129c:	6119      	str	r1, [r3, #16]
 800129e:	f3bf 8f4f 	dsb	sy
 80012a2:	7062      	strb	r2, [r4, #1]
 80012a4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 80012a8:	f7ff bfb4 	b.w	8001214 <drill_pwm_sampling_available>
 80012ac:	2000      	movs	r0, #0
 80012ae:	bd10      	pop	{r4, pc}
 80012b0:	200000fe 	.word	0x200000fe
 80012b4:	40012c00 	.word	0x40012c00

080012b8 <drill_pwm_sampling_start>:
 80012b8:	b508      	push	{r3, lr}
 80012ba:	f7ff ffab 	bl	8001214 <drill_pwm_sampling_available>
 80012be:	b1a8      	cbz	r0, 80012ec <drill_pwm_sampling_start+0x34>
 80012c0:	4b0b      	ldr	r3, [pc, #44]	@ (80012f0 <drill_pwm_sampling_start+0x38>)
 80012c2:	681a      	ldr	r2, [r3, #0]
 80012c4:	f012 0201 	ands.w	r2, r2, #1
 80012c8:	d110      	bne.n	80012ec <drill_pwm_sampling_start+0x34>
 80012ca:	2180      	movs	r1, #128	@ 0x80
 80012cc:	6019      	str	r1, [r3, #0]
 80012ce:	21e0      	movs	r1, #224	@ 0xe0
 80012d0:	6019      	str	r1, [r3, #0]
 80012d2:	2101      	movs	r1, #1
 80012d4:	625a      	str	r2, [r3, #36]	@ 0x24
 80012d6:	6159      	str	r1, [r3, #20]
 80012d8:	611a      	str	r2, [r3, #16]
 80012da:	681a      	ldr	r2, [r3, #0]
 80012dc:	430a      	orrs	r2, r1
 80012de:	601a      	str	r2, [r3, #0]
 80012e0:	f3bf 8f4f 	dsb	sy
 80012e4:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 80012e8:	f7ff bf94 	b.w	8001214 <drill_pwm_sampling_available>
 80012ec:	2000      	movs	r0, #0
 80012ee:	bd08      	pop	{r3, pc}
 80012f0:	40012c00 	.word	0x40012c00

080012f4 <drill_pwm_sampling_pause>:
 80012f4:	4b05      	ldr	r3, [pc, #20]	@ (800130c <drill_pwm_sampling_pause+0x18>)
 80012f6:	785b      	ldrb	r3, [r3, #1]
 80012f8:	b133      	cbz	r3, 8001308 <drill_pwm_sampling_pause+0x14>
 80012fa:	4a05      	ldr	r2, [pc, #20]	@ (8001310 <drill_pwm_sampling_pause+0x1c>)
 80012fc:	6813      	ldr	r3, [r2, #0]
 80012fe:	f023 0301 	bic.w	r3, r3, #1
 8001302:	6013      	str	r3, [r2, #0]
 8001304:	f3bf 8f4f 	dsb	sy
 8001308:	4770      	bx	lr
 800130a:	bf00      	nop
 800130c:	200000fe 	.word	0x200000fe
 8001310:	40012c00 	.word	0x40012c00

08001314 <drill_pwm_sampling_abort>:
 8001314:	4809      	ldr	r0, [pc, #36]	@ (800133c <drill_pwm_sampling_abort+0x28>)
 8001316:	7843      	ldrb	r3, [r0, #1]
 8001318:	b173      	cbz	r3, 8001338 <drill_pwm_sampling_abort+0x24>
 800131a:	4b09      	ldr	r3, [pc, #36]	@ (8001340 <drill_pwm_sampling_abort+0x2c>)
 800131c:	681a      	ldr	r2, [r3, #0]
 800131e:	f022 0201 	bic.w	r2, r2, #1
 8001322:	601a      	str	r2, [r3, #0]
 8001324:	2200      	movs	r2, #0
 8001326:	621a      	str	r2, [r3, #32]
 8001328:	6c59      	ldr	r1, [r3, #68]	@ 0x44
 800132a:	f421 4100 	bic.w	r1, r1, #32768	@ 0x8000
 800132e:	6459      	str	r1, [r3, #68]	@ 0x44
 8001330:	605a      	str	r2, [r3, #4]
 8001332:	f3bf 8f4f 	dsb	sy
 8001336:	7042      	strb	r2, [r0, #1]
 8001338:	4770      	bx	lr
 800133a:	bf00      	nop
 800133c:	200000fe 	.word	0x200000fe
 8001340:	40012c00 	.word	0x40012c00

08001344 <spi_clock_ok>:
 8001344:	4b1c      	ldr	r3, [pc, #112]	@ (80013b8 <spi_clock_ok+0x74>)
 8001346:	681a      	ldr	r2, [r3, #0]
 8001348:	4b1c      	ldr	r3, [pc, #112]	@ (80013bc <spi_clock_ok+0x78>)
 800134a:	429a      	cmp	r2, r3
 800134c:	d001      	beq.n	8001352 <spi_clock_ok+0xe>
 800134e:	2000      	movs	r0, #0
 8001350:	4770      	bx	lr
 8001352:	4b1b      	ldr	r3, [pc, #108]	@ (80013c0 <spi_clock_ok+0x7c>)
 8001354:	4a1b      	ldr	r2, [pc, #108]	@ (80013c4 <spi_clock_ok+0x80>)
 8001356:	6819      	ldr	r1, [r3, #0]
 8001358:	400a      	ands	r2, r1
 800135a:	491b      	ldr	r1, [pc, #108]	@ (80013c8 <spi_clock_ok+0x84>)
 800135c:	428a      	cmp	r2, r1
 800135e:	d1f6      	bne.n	800134e <spi_clock_ok+0xa>
 8001360:	68d9      	ldr	r1, [r3, #12]
 8001362:	4a1a      	ldr	r2, [pc, #104]	@ (80013cc <spi_clock_ok+0x88>)
 8001364:	4291      	cmp	r1, r2
 8001366:	d1f2      	bne.n	800134e <spi_clock_ok+0xa>
 8001368:	689a      	ldr	r2, [r3, #8]
 800136a:	f3c2 020d 	ubfx	r2, r2, #0, #14
 800136e:	2a0f      	cmp	r2, #15
 8001370:	d1ed      	bne.n	800134e <spi_clock_ok+0xa>
 8001372:	6d9a      	ldr	r2, [r3, #88]	@ 0x58
 8001374:	00d2      	lsls	r2, r2, #3
 8001376:	d5ea      	bpl.n	800134e <spi_clock_ok+0xa>
 8001378:	6b9a      	ldr	r2, [r3, #56]	@ 0x38
 800137a:	00d0      	lsls	r0, r2, #3
 800137c:	d4e7      	bmi.n	800134e <spi_clock_ok+0xa>
 800137e:	4a14      	ldr	r2, [pc, #80]	@ (80013d0 <spi_clock_ok+0x8c>)
 8001380:	6811      	ldr	r1, [r2, #0]
 8001382:	f401 418c 	and.w	r1, r1, #17920	@ 0x4600
 8001386:	f5b1 7f00 	cmp.w	r1, #512	@ 0x200
 800138a:	d1e0      	bne.n	800134e <spi_clock_ok+0xa>
 800138c:	f8d2 1080 	ldr.w	r1, [r2, #128]	@ 0x80
 8001390:	05c9      	lsls	r1, r1, #23
 8001392:	d5dc      	bpl.n	800134e <spi_clock_ok+0xa>
 8001394:	6952      	ldr	r2, [r2, #20]
 8001396:	0552      	lsls	r2, r2, #21
 8001398:	d4d9      	bmi.n	800134e <spi_clock_ok+0xa>
 800139a:	4a0e      	ldr	r2, [pc, #56]	@ (80013d4 <spi_clock_ok+0x90>)
 800139c:	6812      	ldr	r2, [r2, #0]
 800139e:	f002 020f 	and.w	r2, r2, #15
 80013a2:	2a04      	cmp	r2, #4
 80013a4:	d1d3      	bne.n	800134e <spi_clock_ok+0xa>
 80013a6:	6cd8      	ldr	r0, [r3, #76]	@ 0x4c
 80013a8:	f000 0023 	and.w	r0, r0, #35	@ 0x23
 80013ac:	f1a0 0323 	sub.w	r3, r0, #35	@ 0x23
 80013b0:	4258      	negs	r0, r3
 80013b2:	4158      	adcs	r0, r3
 80013b4:	4770      	bx	lr
 80013b6:	bf00      	nop
 80013b8:	20000000 	.word	0x20000000
 80013bc:	07a12000 	.word	0x07a12000
 80013c0:	40021000 	.word	0x40021000
 80013c4:	03050500 	.word	0x03050500
 80013c8:	03000500 	.word	0x03000500
 80013cc:	01004032 	.word	0x01004032
 80013d0:	40007000 	.word	0x40007000
 80013d4:	40022000 	.word	0x40022000

080013d8 <fault>:
 80013d8:	b508      	push	{r3, lr}
 80013da:	f7ff ff9b 	bl	8001314 <drill_pwm_sampling_abort>
 80013de:	4b1b      	ldr	r3, [pc, #108]	@ (800144c <fault+0x74>)
 80013e0:	491b      	ldr	r1, [pc, #108]	@ (8001450 <fault+0x78>)
 80013e2:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80013e4:	f042 0223 	orr.w	r2, r2, #35	@ 0x23
 80013e8:	64da      	str	r2, [r3, #76]	@ 0x4c
 80013ea:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80013ec:	f04f 4290 	mov.w	r2, #1207959552	@ 0x48000000
 80013f0:	6191      	str	r1, [r2, #24]
 80013f2:	f44f 3140 	mov.w	r1, #196608	@ 0x30000
 80013f6:	f8c2 1418 	str.w	r1, [r2, #1048]	@ 0x418
 80013fa:	f502 52a0 	add.w	r2, r2, #5120	@ 0x1400
 80013fe:	f44f 3100 	mov.w	r1, #131072	@ 0x20000
 8001402:	6191      	str	r1, [r2, #24]
 8001404:	f3bf 8f4f 	dsb	sy
 8001408:	6e1a      	ldr	r2, [r3, #96]	@ 0x60
 800140a:	0512      	lsls	r2, r2, #20
 800140c:	d50a      	bpl.n	8001424 <fault+0x4c>
 800140e:	4a11      	ldr	r2, [pc, #68]	@ (8001454 <fault+0x7c>)
 8001410:	6c51      	ldr	r1, [r2, #68]	@ 0x44
 8001412:	f421 4100 	bic.w	r1, r1, #32768	@ 0x8000
 8001416:	6451      	str	r1, [r2, #68]	@ 0x44
 8001418:	2100      	movs	r1, #0
 800141a:	6211      	str	r1, [r2, #32]
 800141c:	6811      	ldr	r1, [r2, #0]
 800141e:	f021 0101 	bic.w	r1, r1, #1
 8001422:	6011      	str	r1, [r2, #0]
 8001424:	6d9b      	ldr	r3, [r3, #88]	@ 0x58
 8001426:	045b      	lsls	r3, r3, #17
 8001428:	bf41      	itttt	mi
 800142a:	4a0b      	ldrmi	r2, [pc, #44]	@ (8001458 <fault+0x80>)
 800142c:	6813      	ldrmi	r3, [r2, #0]
 800142e:	f023 0340 	bicmi.w	r3, r3, #64	@ 0x40
 8001432:	6013      	strmi	r3, [r2, #0]
 8001434:	4b09      	ldr	r3, [pc, #36]	@ (800145c <fault+0x84>)
 8001436:	f44f 5280 	mov.w	r2, #4096	@ 0x1000
 800143a:	619a      	str	r2, [r3, #24]
 800143c:	f3bf 8f4f 	dsb	sy
 8001440:	4b07      	ldr	r3, [pc, #28]	@ (8001460 <fault+0x88>)
 8001442:	2207      	movs	r2, #7
 8001444:	701a      	strb	r2, [r3, #0]
 8001446:	2200      	movs	r2, #0
 8001448:	805a      	strh	r2, [r3, #2]
 800144a:	bd08      	pop	{r3, pc}
 800144c:	40021000 	.word	0x40021000
 8001450:	07a01000 	.word	0x07a01000
 8001454:	40012c00 	.word	0x40012c00
 8001458:	40003800 	.word	0x40003800
 800145c:	48000400 	.word	0x48000400
 8001460:	20000100 	.word	0x20000100

08001464 <pin.constprop.0>:
 8001464:	6803      	ldr	r3, [r0, #0]
 8001466:	b510      	push	{r4, lr}
 8001468:	004c      	lsls	r4, r1, #1
 800146a:	40e3      	lsrs	r3, r4
 800146c:	f003 0303 	and.w	r3, r3, #3
 8001470:	2b01      	cmp	r3, #1
 8001472:	d001      	beq.n	8001478 <pin.constprop.0+0x14>
 8001474:	2000      	movs	r0, #0
 8001476:	bd10      	pop	{r4, pc}
 8001478:	6844      	ldr	r4, [r0, #4]
 800147a:	408b      	lsls	r3, r1
 800147c:	4223      	tst	r3, r4
 800147e:	d1f9      	bne.n	8001474 <pin.constprop.0+0x10>
 8001480:	6943      	ldr	r3, [r0, #20]
 8001482:	40cb      	lsrs	r3, r1
 8001484:	f003 0301 	and.w	r3, r3, #1
 8001488:	4293      	cmp	r3, r2
 800148a:	d1f3      	bne.n	8001474 <pin.constprop.0+0x10>
 800148c:	6900      	ldr	r0, [r0, #16]
 800148e:	40c8      	lsrs	r0, r1
 8001490:	f000 0001 	and.w	r0, r0, #1
 8001494:	1ac3      	subs	r3, r0, r3
 8001496:	4258      	negs	r0, r3
 8001498:	4158      	adcs	r0, r3
 800149a:	e7ec      	b.n	8001476 <pin.constprop.0+0x12>

0800149c <blank>:
 800149c:	b510      	push	{r4, lr}
 800149e:	2200      	movs	r2, #0
 80014a0:	2105      	movs	r1, #5
 80014a2:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 80014a6:	f7ff ffdd 	bl	8001464 <pin.constprop.0>
 80014aa:	b908      	cbnz	r0, 80014b0 <blank+0x14>
 80014ac:	2000      	movs	r0, #0
 80014ae:	bd10      	pop	{r4, pc}
 80014b0:	2107      	movs	r1, #7
 80014b2:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 80014b6:	f7ff ffd5 	bl	8001464 <pin.constprop.0>
 80014ba:	2800      	cmp	r0, #0
 80014bc:	d0f6      	beq.n	80014ac <blank+0x10>
 80014be:	2108      	movs	r1, #8
 80014c0:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 80014c4:	f7ff ffce 	bl	8001464 <pin.constprop.0>
 80014c8:	2800      	cmp	r0, #0
 80014ca:	d0ef      	beq.n	80014ac <blank+0x10>
 80014cc:	2109      	movs	r1, #9
 80014ce:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 80014d2:	f7ff ffc7 	bl	8001464 <pin.constprop.0>
 80014d6:	2800      	cmp	r0, #0
 80014d8:	d0e8      	beq.n	80014ac <blank+0x10>
 80014da:	210a      	movs	r1, #10
 80014dc:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 80014e0:	f7ff ffc0 	bl	8001464 <pin.constprop.0>
 80014e4:	2800      	cmp	r0, #0
 80014e6:	d0e1      	beq.n	80014ac <blank+0x10>
 80014e8:	4815      	ldr	r0, [pc, #84]	@ (8001540 <blank+0xa4>)
 80014ea:	4611      	mov	r1, r2
 80014ec:	f7ff ffba 	bl	8001464 <pin.constprop.0>
 80014f0:	2800      	cmp	r0, #0
 80014f2:	d0db      	beq.n	80014ac <blank+0x10>
 80014f4:	4812      	ldr	r0, [pc, #72]	@ (8001540 <blank+0xa4>)
 80014f6:	2101      	movs	r1, #1
 80014f8:	f7ff ffb4 	bl	8001464 <pin.constprop.0>
 80014fc:	2800      	cmp	r0, #0
 80014fe:	d0d5      	beq.n	80014ac <blank+0x10>
 8001500:	4a10      	ldr	r2, [pc, #64]	@ (8001544 <blank+0xa8>)
 8001502:	6813      	ldr	r3, [r2, #0]
 8001504:	f003 030c 	and.w	r3, r3, #12
 8001508:	2b04      	cmp	r3, #4
 800150a:	d1cf      	bne.n	80014ac <blank+0x10>
 800150c:	6853      	ldr	r3, [r2, #4]
 800150e:	0799      	lsls	r1, r3, #30
 8001510:	d4cc      	bmi.n	80014ac <blank+0x10>
 8001512:	4b0d      	ldr	r3, [pc, #52]	@ (8001548 <blank+0xac>)
 8001514:	6e1b      	ldr	r3, [r3, #96]	@ 0x60
 8001516:	051a      	lsls	r2, r3, #20
 8001518:	d5c8      	bpl.n	80014ac <blank+0x10>
 800151a:	4c0c      	ldr	r4, [pc, #48]	@ (800154c <blank+0xb0>)
 800151c:	6823      	ldr	r3, [r4, #0]
 800151e:	07db      	lsls	r3, r3, #31
 8001520:	d408      	bmi.n	8001534 <blank+0x98>
 8001522:	6a23      	ldr	r3, [r4, #32]
 8001524:	2b00      	cmp	r3, #0
 8001526:	d1c1      	bne.n	80014ac <blank+0x10>
 8001528:	6c60      	ldr	r0, [r4, #68]	@ 0x44
 800152a:	f3c0 30c0 	ubfx	r0, r0, #15, #1
 800152e:	f080 0001 	eor.w	r0, r0, #1
 8001532:	e7bc      	b.n	80014ae <blank+0x12>
 8001534:	f7ff fe6e 	bl	8001214 <drill_pwm_sampling_available>
 8001538:	2800      	cmp	r0, #0
 800153a:	d1f2      	bne.n	8001522 <blank+0x86>
 800153c:	e7b6      	b.n	80014ac <blank+0x10>
 800153e:	bf00      	nop
 8001540:	48000400 	.word	0x48000400
 8001544:	48001400 	.word	0x48001400
 8001548:	40021000 	.word	0x40021000
 800154c:	40012c00 	.word	0x40012c00

08001550 <spi_available>:
 8001550:	b538      	push	{r3, r4, r5, lr}
 8001552:	4c2a      	ldr	r4, [pc, #168]	@ (80015fc <spi_available+0xac>)
 8001554:	7823      	ldrb	r3, [r4, #0]
 8001556:	4605      	mov	r5, r0
 8001558:	b14b      	cbz	r3, 800156e <spi_available+0x1e>
 800155a:	2b07      	cmp	r3, #7
 800155c:	d007      	beq.n	800156e <spi_available+0x1e>
 800155e:	f7ff fef1 	bl	8001344 <spi_clock_ok>
 8001562:	b150      	cbz	r0, 800157a <spi_available+0x2a>
 8001564:	b12d      	cbz	r5, 8001572 <spi_available+0x22>
 8001566:	4b26      	ldr	r3, [pc, #152]	@ (8001600 <spi_available+0xb0>)
 8001568:	6d9a      	ldr	r2, [r3, #88]	@ 0x58
 800156a:	0452      	lsls	r2, r2, #17
 800156c:	d406      	bmi.n	800157c <spi_available+0x2c>
 800156e:	2000      	movs	r0, #0
 8001570:	e003      	b.n	800157a <spi_available+0x2a>
 8001572:	f7ff ff93 	bl	800149c <blank>
 8001576:	2800      	cmp	r0, #0
 8001578:	d1f5      	bne.n	8001566 <spi_available+0x16>
 800157a:	bd38      	pop	{r3, r4, r5, pc}
 800157c:	6b9b      	ldr	r3, [r3, #56]	@ 0x38
 800157e:	045b      	lsls	r3, r3, #17
 8001580:	d4f5      	bmi.n	800156e <spi_available+0x1e>
 8001582:	7822      	ldrb	r2, [r4, #0]
 8001584:	4c1f      	ldr	r4, [pc, #124]	@ (8001604 <spi_available+0xb4>)
 8001586:	2a06      	cmp	r2, #6
 8001588:	bf18      	it	ne
 800158a:	2a01      	cmpne	r2, #1
 800158c:	bf0c      	ite	eq
 800158e:	2201      	moveq	r2, #1
 8001590:	2200      	movne	r2, #0
 8001592:	210c      	movs	r1, #12
 8001594:	4620      	mov	r0, r4
 8001596:	f7ff ff65 	bl	8001464 <pin.constprop.0>
 800159a:	2800      	cmp	r0, #0
 800159c:	d0ed      	beq.n	800157a <spi_available+0x2a>
 800159e:	68e3      	ldr	r3, [r4, #12]
 80015a0:	f1b3 7f80 	cmp.w	r3, #16777216	@ 0x1000000
 80015a4:	d2e3      	bcs.n	800156e <spi_available+0x1e>
 80015a6:	230d      	movs	r3, #13
 80015a8:	2001      	movs	r0, #1
 80015aa:	6822      	ldr	r2, [r4, #0]
 80015ac:	0059      	lsls	r1, r3, #1
 80015ae:	40ca      	lsrs	r2, r1
 80015b0:	f002 0203 	and.w	r2, r2, #3
 80015b4:	2a02      	cmp	r2, #2
 80015b6:	d1da      	bne.n	800156e <spi_available+0x1e>
 80015b8:	6a62      	ldr	r2, [r4, #36]	@ 0x24
 80015ba:	f1a3 0108 	sub.w	r1, r3, #8
 80015be:	0089      	lsls	r1, r1, #2
 80015c0:	40ca      	lsrs	r2, r1
 80015c2:	f002 020f 	and.w	r2, r2, #15
 80015c6:	2a05      	cmp	r2, #5
 80015c8:	d1d1      	bne.n	800156e <spi_available+0x1e>
 80015ca:	6862      	ldr	r2, [r4, #4]
 80015cc:	fa00 f103 	lsl.w	r1, r0, r3
 80015d0:	4211      	tst	r1, r2
 80015d2:	d1cc      	bne.n	800156e <spi_available+0x1e>
 80015d4:	3301      	adds	r3, #1
 80015d6:	2b10      	cmp	r3, #16
 80015d8:	d1e7      	bne.n	80015aa <spi_available+0x5a>
 80015da:	4b0b      	ldr	r3, [pc, #44]	@ (8001608 <spi_available+0xb8>)
 80015dc:	6819      	ldr	r1, [r3, #0]
 80015de:	f240 327d 	movw	r2, #893	@ 0x37d
 80015e2:	4291      	cmp	r1, r2
 80015e4:	d1c3      	bne.n	800156e <spi_available+0x1e>
 80015e6:	685a      	ldr	r2, [r3, #4]
 80015e8:	f5b2 6f70 	cmp.w	r2, #3840	@ 0xf00
 80015ec:	d1bf      	bne.n	800156e <spi_available+0x1e>
 80015ee:	689b      	ldr	r3, [r3, #8]
 80015f0:	f413 7fb8 	tst.w	r3, #368	@ 0x170
 80015f4:	bf0c      	ite	eq
 80015f6:	2001      	moveq	r0, #1
 80015f8:	2000      	movne	r0, #0
 80015fa:	e7be      	b.n	800157a <spi_available+0x2a>
 80015fc:	20000100 	.word	0x20000100
 8001600:	40021000 	.word	0x40021000
 8001604:	48000400 	.word	0x48000400
 8001608:	40003800 	.word	0x40003800

0800160c <drill_spi_available>:
 800160c:	2000      	movs	r0, #0
 800160e:	e79f      	b.n	8001550 <spi_available>

08001610 <drill_spi_sampling_available>:
 8001610:	b508      	push	{r3, lr}
 8001612:	f7ff fdff 	bl	8001214 <drill_pwm_sampling_available>
 8001616:	b118      	cbz	r0, 8001620 <drill_spi_sampling_available+0x10>
 8001618:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 800161c:	2001      	movs	r0, #1
 800161e:	e797      	b.n	8001550 <spi_available>
 8001620:	bd08      	pop	{r3, pc}

08001622 <drill_spi_init>:
 8001622:	b538      	push	{r3, r4, r5, lr}
 8001624:	4d32      	ldr	r5, [pc, #200]	@ (80016f0 <drill_spi_init+0xce>)
 8001626:	782b      	ldrb	r3, [r5, #0]
 8001628:	4604      	mov	r4, r0
 800162a:	b11b      	cbz	r3, 8001634 <drill_spi_init+0x12>
 800162c:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 8001630:	f7ff bfec 	b.w	800160c <drill_spi_available>
 8001634:	f7ff fe86 	bl	8001344 <spi_clock_ok>
 8001638:	2800      	cmp	r0, #0
 800163a:	d039      	beq.n	80016b0 <drill_spi_init+0x8e>
 800163c:	f7ff ff2e 	bl	800149c <blank>
 8001640:	2800      	cmp	r0, #0
 8001642:	d035      	beq.n	80016b0 <drill_spi_init+0x8e>
 8001644:	4a2b      	ldr	r2, [pc, #172]	@ (80016f4 <drill_spi_init+0xd2>)
 8001646:	6d93      	ldr	r3, [r2, #88]	@ 0x58
 8001648:	045b      	lsls	r3, r3, #17
 800164a:	d430      	bmi.n	80016ae <drill_spi_init+0x8c>
 800164c:	4b2a      	ldr	r3, [pc, #168]	@ (80016f8 <drill_spi_init+0xd6>)
 800164e:	f44f 5180 	mov.w	r1, #4096	@ 0x1000
 8001652:	6199      	str	r1, [r3, #24]
 8001654:	f3bf 8f4f 	dsb	sy
 8001658:	6859      	ldr	r1, [r3, #4]
 800165a:	f421 4170 	bic.w	r1, r1, #61440	@ 0xf000
 800165e:	6059      	str	r1, [r3, #4]
 8001660:	68d9      	ldr	r1, [r3, #12]
 8001662:	f021 417f 	bic.w	r1, r1, #4278190080	@ 0xff000000
 8001666:	60d9      	str	r1, [r3, #12]
 8001668:	6899      	ldr	r1, [r3, #8]
 800166a:	f021 417f 	bic.w	r1, r1, #4278190080	@ 0xff000000
 800166e:	f041 412a 	orr.w	r1, r1, #2852126720	@ 0xaa000000
 8001672:	6099      	str	r1, [r3, #8]
 8001674:	6819      	ldr	r1, [r3, #0]
 8001676:	f021 417f 	bic.w	r1, r1, #4278190080	@ 0xff000000
 800167a:	f041 4129 	orr.w	r1, r1, #2835349504	@ 0xa9000000
 800167e:	6019      	str	r1, [r3, #0]
 8001680:	6a59      	ldr	r1, [r3, #36]	@ 0x24
 8001682:	f3c1 0113 	ubfx	r1, r1, #0, #20
 8001686:	f041 41aa 	orr.w	r1, r1, #1426063360	@ 0x55000000
 800168a:	f441 01a0 	orr.w	r1, r1, #5242880	@ 0x500000
 800168e:	6259      	str	r1, [r3, #36]	@ 0x24
 8001690:	f3bf 8f4f 	dsb	sy
 8001694:	6d93      	ldr	r3, [r2, #88]	@ 0x58
 8001696:	f443 4380 	orr.w	r3, r3, #16384	@ 0x4000
 800169a:	6593      	str	r3, [r2, #88]	@ 0x58
 800169c:	6d93      	ldr	r3, [r2, #88]	@ 0x58
 800169e:	f3bf 8f4f 	dsb	sy
 80016a2:	6b93      	ldr	r3, [r2, #56]	@ 0x38
 80016a4:	f413 4380 	ands.w	r3, r3, #16384	@ 0x4000
 80016a8:	d003      	beq.n	80016b2 <drill_spi_init+0x90>
 80016aa:	f7ff fe95 	bl	80013d8 <fault>
 80016ae:	2000      	movs	r0, #0
 80016b0:	bd38      	pop	{r3, r4, r5, pc}
 80016b2:	6b91      	ldr	r1, [r2, #56]	@ 0x38
 80016b4:	f441 4180 	orr.w	r1, r1, #16384	@ 0x4000
 80016b8:	6391      	str	r1, [r2, #56]	@ 0x38
 80016ba:	f3bf 8f4f 	dsb	sy
 80016be:	6b91      	ldr	r1, [r2, #56]	@ 0x38
 80016c0:	f421 4180 	bic.w	r1, r1, #16384	@ 0x4000
 80016c4:	6391      	str	r1, [r2, #56]	@ 0x38
 80016c6:	f3bf 8f4f 	dsb	sy
 80016ca:	4a0c      	ldr	r2, [pc, #48]	@ (80016fc <drill_spi_init+0xda>)
 80016cc:	6013      	str	r3, [r2, #0]
 80016ce:	f44f 6370 	mov.w	r3, #3840	@ 0xf00
 80016d2:	6053      	str	r3, [r2, #4]
 80016d4:	f240 337d 	movw	r3, #893	@ 0x37d
 80016d8:	6013      	str	r3, [r2, #0]
 80016da:	f3bf 8f4f 	dsb	sy
 80016de:	2301      	movs	r3, #1
 80016e0:	e9c5 4401 	strd	r4, r4, [r5, #4]
 80016e4:	702b      	strb	r3, [r5, #0]
 80016e6:	f7ff ff91 	bl	800160c <drill_spi_available>
 80016ea:	2800      	cmp	r0, #0
 80016ec:	d1e0      	bne.n	80016b0 <drill_spi_init+0x8e>
 80016ee:	e7dc      	b.n	80016aa <drill_spi_init+0x88>
 80016f0:	20000100 	.word	0x20000100
 80016f4:	40021000 	.word	0x40021000
 80016f8:	48000400 	.word	0x48000400
 80016fc:	40003800 	.word	0x40003800

08001700 <drill_spi_start>:
 8001700:	b570      	push	{r4, r5, r6, lr}
 8001702:	4c1f      	ldr	r4, [pc, #124]	@ (8001780 <drill_spi_start+0x80>)
 8001704:	7823      	ldrb	r3, [r4, #0]
 8001706:	2b01      	cmp	r3, #1
 8001708:	4605      	mov	r5, r0
 800170a:	460e      	mov	r6, r1
 800170c:	d001      	beq.n	8001712 <drill_spi_start+0x12>
 800170e:	2b06      	cmp	r3, #6
 8001710:	d104      	bne.n	800171c <drill_spi_start+0x1c>
 8001712:	f7ff ff7b 	bl	800160c <drill_spi_available>
 8001716:	b918      	cbnz	r0, 8001720 <drill_spi_start+0x20>
 8001718:	f7ff fe5e 	bl	80013d8 <fault>
 800171c:	2000      	movs	r0, #0
 800171e:	bd70      	pop	{r4, r5, r6, pc}
 8001720:	68a3      	ldr	r3, [r4, #8]
 8001722:	1af3      	subs	r3, r6, r3
 8001724:	d4fa      	bmi.n	800171c <drill_spi_start+0x1c>
 8001726:	6863      	ldr	r3, [r4, #4]
 8001728:	4a16      	ldr	r2, [pc, #88]	@ (8001784 <drill_spi_start+0x84>)
 800172a:	1af3      	subs	r3, r6, r3
 800172c:	3b02      	subs	r3, #2
 800172e:	4293      	cmp	r3, r2
 8001730:	d8f4      	bhi.n	800171c <drill_spi_start+0x1c>
 8001732:	2300      	movs	r3, #0
 8001734:	4619      	mov	r1, r3
 8001736:	fa45 f203 	asr.w	r2, r5, r3
 800173a:	3301      	adds	r3, #1
 800173c:	f002 0201 	and.w	r2, r2, #1
 8001740:	2b10      	cmp	r3, #16
 8001742:	4608      	mov	r0, r1
 8001744:	ea81 0102 	eor.w	r1, r1, r2
 8001748:	d1f5      	bne.n	8001736 <drill_spi_start+0x36>
 800174a:	4282      	cmp	r2, r0
 800174c:	d1e6      	bne.n	800171c <drill_spi_start+0x1c>
 800174e:	2201      	movs	r2, #1
 8001750:	480d      	ldr	r0, [pc, #52]	@ (8001788 <drill_spi_start+0x88>)
 8001752:	4611      	mov	r1, r2
 8001754:	f7ff fe86 	bl	8001464 <pin.constprop.0>
 8001758:	2800      	cmp	r0, #0
 800175a:	d0e0      	beq.n	800171e <drill_spi_start+0x1e>
 800175c:	4b0b      	ldr	r3, [pc, #44]	@ (800178c <drill_spi_start+0x8c>)
 800175e:	689b      	ldr	r3, [r3, #8]
 8001760:	f013 0381 	ands.w	r3, r3, #129	@ 0x81
 8001764:	d1d8      	bne.n	8001718 <drill_spi_start+0x18>
 8001766:	8063      	strh	r3, [r4, #2]
 8001768:	2302      	movs	r3, #2
 800176a:	7023      	strb	r3, [r4, #0]
 800176c:	4b08      	ldr	r3, [pc, #32]	@ (8001790 <drill_spi_start+0x90>)
 800176e:	81a5      	strh	r5, [r4, #12]
 8001770:	f04f 5280 	mov.w	r2, #268435456	@ 0x10000000
 8001774:	60a6      	str	r6, [r4, #8]
 8001776:	6126      	str	r6, [r4, #16]
 8001778:	619a      	str	r2, [r3, #24]
 800177a:	f3bf 8f4f 	dsb	sy
 800177e:	e7ce      	b.n	800171e <drill_spi_start+0x1e>
 8001780:	20000100 	.word	0x20000100
 8001784:	7ffffffd 	.word	0x7ffffffd
 8001788:	48001400 	.word	0x48001400
 800178c:	40003800 	.word	0x40003800
 8001790:	48000400 	.word	0x48000400

08001794 <drill_spi_poll>:
 8001794:	b538      	push	{r3, r4, r5, lr}
 8001796:	4c26      	ldr	r4, [pc, #152]	@ (8001830 <drill_spi_poll+0x9c>)
 8001798:	7823      	ldrb	r3, [r4, #0]
 800179a:	2b01      	cmp	r3, #1
 800179c:	4605      	mov	r5, r0
 800179e:	d929      	bls.n	80017f4 <drill_spi_poll+0x60>
 80017a0:	2b07      	cmp	r3, #7
 80017a2:	d027      	beq.n	80017f4 <drill_spi_poll+0x60>
 80017a4:	f7ff ff32 	bl	800160c <drill_spi_available>
 80017a8:	b910      	cbnz	r0, 80017b0 <drill_spi_poll+0x1c>
 80017aa:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 80017ae:	e613      	b.n	80013d8 <fault>
 80017b0:	2201      	movs	r2, #1
 80017b2:	4820      	ldr	r0, [pc, #128]	@ (8001834 <drill_spi_poll+0xa0>)
 80017b4:	4611      	mov	r1, r2
 80017b6:	f7ff fe55 	bl	8001464 <pin.constprop.0>
 80017ba:	2800      	cmp	r0, #0
 80017bc:	d0f5      	beq.n	80017aa <drill_spi_poll+0x16>
 80017be:	68a3      	ldr	r3, [r4, #8]
 80017c0:	1aeb      	subs	r3, r5, r3
 80017c2:	2b0a      	cmp	r3, #10
 80017c4:	d8f1      	bhi.n	80017aa <drill_spi_poll+0x16>
 80017c6:	6923      	ldr	r3, [r4, #16]
 80017c8:	1aeb      	subs	r3, r5, r3
 80017ca:	2b64      	cmp	r3, #100	@ 0x64
 80017cc:	d8ed      	bhi.n	80017aa <drill_spi_poll+0x16>
 80017ce:	7822      	ldrb	r2, [r4, #0]
 80017d0:	60a5      	str	r5, [r4, #8]
 80017d2:	3a02      	subs	r2, #2
 80017d4:	2a03      	cmp	r2, #3
 80017d6:	d80d      	bhi.n	80017f4 <drill_spi_poll+0x60>
 80017d8:	e8df f002 	tbb	[pc, r2]
 80017dc:	1c150d02 	.word	0x1c150d02
 80017e0:	2b01      	cmp	r3, #1
 80017e2:	d907      	bls.n	80017f4 <drill_spi_poll+0x60>
 80017e4:	4b14      	ldr	r3, [pc, #80]	@ (8001838 <drill_spi_poll+0xa4>)
 80017e6:	689a      	ldr	r2, [r3, #8]
 80017e8:	0791      	lsls	r1, r2, #30
 80017ea:	d503      	bpl.n	80017f4 <drill_spi_poll+0x60>
 80017ec:	89a2      	ldrh	r2, [r4, #12]
 80017ee:	819a      	strh	r2, [r3, #12]
 80017f0:	2303      	movs	r3, #3
 80017f2:	7023      	strb	r3, [r4, #0]
 80017f4:	bd38      	pop	{r3, r4, r5, pc}
 80017f6:	4b10      	ldr	r3, [pc, #64]	@ (8001838 <drill_spi_poll+0xa4>)
 80017f8:	689a      	ldr	r2, [r3, #8]
 80017fa:	07d2      	lsls	r2, r2, #31
 80017fc:	d5fa      	bpl.n	80017f4 <drill_spi_poll+0x60>
 80017fe:	899b      	ldrh	r3, [r3, #12]
 8001800:	8063      	strh	r3, [r4, #2]
 8001802:	2304      	movs	r3, #4
 8001804:	e7f5      	b.n	80017f2 <drill_spi_poll+0x5e>
 8001806:	4b0c      	ldr	r3, [pc, #48]	@ (8001838 <drill_spi_poll+0xa4>)
 8001808:	689b      	ldr	r3, [r3, #8]
 800180a:	061b      	lsls	r3, r3, #24
 800180c:	d4f2      	bmi.n	80017f4 <drill_spi_poll+0x60>
 800180e:	6165      	str	r5, [r4, #20]
 8001810:	2305      	movs	r3, #5
 8001812:	e7ee      	b.n	80017f2 <drill_spi_poll+0x5e>
 8001814:	6963      	ldr	r3, [r4, #20]
 8001816:	1aeb      	subs	r3, r5, r3
 8001818:	2b01      	cmp	r3, #1
 800181a:	d9eb      	bls.n	80017f4 <drill_spi_poll+0x60>
 800181c:	4b07      	ldr	r3, [pc, #28]	@ (800183c <drill_spi_poll+0xa8>)
 800181e:	f44f 5280 	mov.w	r2, #4096	@ 0x1000
 8001822:	619a      	str	r2, [r3, #24]
 8001824:	f3bf 8f4f 	dsb	sy
 8001828:	2306      	movs	r3, #6
 800182a:	6065      	str	r5, [r4, #4]
 800182c:	e7e1      	b.n	80017f2 <drill_spi_poll+0x5e>
 800182e:	bf00      	nop
 8001830:	20000100 	.word	0x20000100
 8001834:	48001400 	.word	0x48001400
 8001838:	40003800 	.word	0x40003800
 800183c:	48000400 	.word	0x48000400

08001840 <drill_spi_get>:
 8001840:	b570      	push	{r4, r5, r6, lr}
 8001842:	4606      	mov	r6, r0
 8001844:	460d      	mov	r5, r1
 8001846:	b118      	cbz	r0, 8001850 <drill_spi_get+0x10>
 8001848:	4c0d      	ldr	r4, [pc, #52]	@ (8001880 <drill_spi_get+0x40>)
 800184a:	7823      	ldrb	r3, [r4, #0]
 800184c:	2b06      	cmp	r3, #6
 800184e:	d001      	beq.n	8001854 <drill_spi_get+0x14>
 8001850:	2000      	movs	r0, #0
 8001852:	bd70      	pop	{r4, r5, r6, pc}
 8001854:	f7ff feda 	bl	800160c <drill_spi_available>
 8001858:	b170      	cbz	r0, 8001878 <drill_spi_get+0x38>
 800185a:	68a3      	ldr	r3, [r4, #8]
 800185c:	1aeb      	subs	r3, r5, r3
 800185e:	2b0a      	cmp	r3, #10
 8001860:	d80a      	bhi.n	8001878 <drill_spi_get+0x38>
 8001862:	6923      	ldr	r3, [r4, #16]
 8001864:	1aed      	subs	r5, r5, r3
 8001866:	2d64      	cmp	r5, #100	@ 0x64
 8001868:	d806      	bhi.n	8001878 <drill_spi_get+0x38>
 800186a:	8863      	ldrh	r3, [r4, #2]
 800186c:	8033      	strh	r3, [r6, #0]
 800186e:	2300      	movs	r3, #0
 8001870:	8063      	strh	r3, [r4, #2]
 8001872:	2301      	movs	r3, #1
 8001874:	7023      	strb	r3, [r4, #0]
 8001876:	e7ec      	b.n	8001852 <drill_spi_get+0x12>
 8001878:	f7ff fdae 	bl	80013d8 <fault>
 800187c:	e7e8      	b.n	8001850 <drill_spi_get+0x10>
 800187e:	bf00      	nop
 8001880:	20000100 	.word	0x20000100

08001884 <drill_spi_failed>:
 8001884:	4b02      	ldr	r3, [pc, #8]	@ (8001890 <drill_spi_failed+0xc>)
 8001886:	7818      	ldrb	r0, [r3, #0]
 8001888:	1fc3      	subs	r3, r0, #7
 800188a:	4258      	negs	r0, r3
 800188c:	4158      	adcs	r0, r3
 800188e:	4770      	bx	lr
 8001890:	20000100 	.word	0x20000100

08001894 <drill_spi_active>:
 8001894:	4b04      	ldr	r3, [pc, #16]	@ (80018a8 <drill_spi_active+0x14>)
 8001896:	7818      	ldrb	r0, [r3, #0]
 8001898:	3802      	subs	r0, #2
 800189a:	b2c0      	uxtb	r0, r0
 800189c:	2804      	cmp	r0, #4
 800189e:	bf8c      	ite	hi
 80018a0:	2000      	movhi	r0, #0
 80018a2:	2001      	movls	r0, #1
 80018a4:	4770      	bx	lr
 80018a6:	bf00      	nop
 80018a8:	20000100 	.word	0x20000100

080018ac <drill_spi_abort>:
 80018ac:	4b02      	ldr	r3, [pc, #8]	@ (80018b8 <drill_spi_abort+0xc>)
 80018ae:	781b      	ldrb	r3, [r3, #0]
 80018b0:	b103      	cbz	r3, 80018b4 <drill_spi_abort+0x8>
 80018b2:	e591      	b.n	80013d8 <fault>
 80018b4:	4770      	bx	lr
 80018b6:	bf00      	nop
 80018b8:	20000100 	.word	0x20000100

080018bc <drill_clock_available>:
 80018bc:	4b19      	ldr	r3, [pc, #100]	@ (8001924 <drill_clock_available+0x68>)
 80018be:	681a      	ldr	r2, [r3, #0]
 80018c0:	4b19      	ldr	r3, [pc, #100]	@ (8001928 <drill_clock_available+0x6c>)
 80018c2:	429a      	cmp	r2, r3
 80018c4:	d001      	beq.n	80018ca <drill_clock_available+0xe>
 80018c6:	2000      	movs	r0, #0
 80018c8:	4770      	bx	lr
 80018ca:	4b18      	ldr	r3, [pc, #96]	@ (800192c <drill_clock_available+0x70>)
 80018cc:	4a18      	ldr	r2, [pc, #96]	@ (8001930 <drill_clock_available+0x74>)
 80018ce:	6819      	ldr	r1, [r3, #0]
 80018d0:	400a      	ands	r2, r1
 80018d2:	4918      	ldr	r1, [pc, #96]	@ (8001934 <drill_clock_available+0x78>)
 80018d4:	428a      	cmp	r2, r1
 80018d6:	d1f6      	bne.n	80018c6 <drill_clock_available+0xa>
 80018d8:	68d9      	ldr	r1, [r3, #12]
 80018da:	4a17      	ldr	r2, [pc, #92]	@ (8001938 <drill_clock_available+0x7c>)
 80018dc:	4291      	cmp	r1, r2
 80018de:	d1f2      	bne.n	80018c6 <drill_clock_available+0xa>
 80018e0:	689a      	ldr	r2, [r3, #8]
 80018e2:	f3c2 020d 	ubfx	r2, r2, #0, #14
 80018e6:	2a0f      	cmp	r2, #15
 80018e8:	d1ed      	bne.n	80018c6 <drill_clock_available+0xa>
 80018ea:	6d9a      	ldr	r2, [r3, #88]	@ 0x58
 80018ec:	00d2      	lsls	r2, r2, #3
 80018ee:	d5ea      	bpl.n	80018c6 <drill_clock_available+0xa>
 80018f0:	6b9b      	ldr	r3, [r3, #56]	@ 0x38
 80018f2:	00d8      	lsls	r0, r3, #3
 80018f4:	d4e7      	bmi.n	80018c6 <drill_clock_available+0xa>
 80018f6:	4b11      	ldr	r3, [pc, #68]	@ (800193c <drill_clock_available+0x80>)
 80018f8:	681a      	ldr	r2, [r3, #0]
 80018fa:	f402 428c 	and.w	r2, r2, #17920	@ 0x4600
 80018fe:	f5b2 7f00 	cmp.w	r2, #512	@ 0x200
 8001902:	d1e0      	bne.n	80018c6 <drill_clock_available+0xa>
 8001904:	f8d3 2080 	ldr.w	r2, [r3, #128]	@ 0x80
 8001908:	05d1      	lsls	r1, r2, #23
 800190a:	d5dc      	bpl.n	80018c6 <drill_clock_available+0xa>
 800190c:	695b      	ldr	r3, [r3, #20]
 800190e:	055a      	lsls	r2, r3, #21
 8001910:	d4d9      	bmi.n	80018c6 <drill_clock_available+0xa>
 8001912:	4b0b      	ldr	r3, [pc, #44]	@ (8001940 <drill_clock_available+0x84>)
 8001914:	6818      	ldr	r0, [r3, #0]
 8001916:	f000 000f 	and.w	r0, r0, #15
 800191a:	1f03      	subs	r3, r0, #4
 800191c:	4258      	negs	r0, r3
 800191e:	4158      	adcs	r0, r3
 8001920:	4770      	bx	lr
 8001922:	bf00      	nop
 8001924:	20000000 	.word	0x20000000
 8001928:	07a12000 	.word	0x07a12000
 800192c:	40021000 	.word	0x40021000
 8001930:	03050500 	.word	0x03050500
 8001934:	03000500 	.word	0x03000500
 8001938:	01004032 	.word	0x01004032
 800193c:	40007000 	.word	0x40007000
 8001940:	40022000 	.word	0x40022000

08001944 <timebase_available>:
 8001944:	b508      	push	{r3, lr}
 8001946:	4b1e      	ldr	r3, [pc, #120]	@ (80019c0 <timebase_available+0x7c>)
 8001948:	7818      	ldrb	r0, [r3, #0]
 800194a:	b138      	cbz	r0, 800195c <timebase_available+0x18>
 800194c:	f7ff ffb6 	bl	80018bc <drill_clock_available>
 8001950:	b120      	cbz	r0, 800195c <timebase_available+0x18>
 8001952:	4b1c      	ldr	r3, [pc, #112]	@ (80019c4 <timebase_available+0x80>)
 8001954:	6d9a      	ldr	r2, [r3, #88]	@ 0x58
 8001956:	07d1      	lsls	r1, r2, #31
 8001958:	d401      	bmi.n	800195e <timebase_available+0x1a>
 800195a:	2000      	movs	r0, #0
 800195c:	bd08      	pop	{r3, pc}
 800195e:	6b9b      	ldr	r3, [r3, #56]	@ 0x38
 8001960:	07da      	lsls	r2, r3, #31
 8001962:	d4fa      	bmi.n	800195a <timebase_available+0x16>
 8001964:	f04f 23e0 	mov.w	r3, #3758153728	@ 0xe000e000
 8001968:	6918      	ldr	r0, [r3, #16]
 800196a:	f04f 4380 	mov.w	r3, #1073741824	@ 0x40000000
 800196e:	681a      	ldr	r2, [r3, #0]
 8001970:	2a01      	cmp	r2, #1
 8001972:	d1f2      	bne.n	800195a <timebase_available+0x16>
 8001974:	685a      	ldr	r2, [r3, #4]
 8001976:	2a00      	cmp	r2, #0
 8001978:	d1ef      	bne.n	800195a <timebase_available+0x16>
 800197a:	689a      	ldr	r2, [r3, #8]
 800197c:	2a00      	cmp	r2, #0
 800197e:	d1ec      	bne.n	800195a <timebase_available+0x16>
 8001980:	68da      	ldr	r2, [r3, #12]
 8001982:	2a00      	cmp	r2, #0
 8001984:	d1e9      	bne.n	800195a <timebase_available+0x16>
 8001986:	6a1a      	ldr	r2, [r3, #32]
 8001988:	2a00      	cmp	r2, #0
 800198a:	d1e6      	bne.n	800195a <timebase_available+0x16>
 800198c:	6a9b      	ldr	r3, [r3, #40]	@ 0x28
 800198e:	2b7f      	cmp	r3, #127	@ 0x7f
 8001990:	d1e3      	bne.n	800195a <timebase_available+0x16>
 8001992:	f04f 4380 	mov.w	r3, #1073741824	@ 0x40000000
 8001996:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 8001998:	3201      	adds	r2, #1
 800199a:	d1de      	bne.n	800195a <timebase_available+0x16>
 800199c:	699a      	ldr	r2, [r3, #24]
 800199e:	2a00      	cmp	r2, #0
 80019a0:	d1db      	bne.n	800195a <timebase_available+0x16>
 80019a2:	69db      	ldr	r3, [r3, #28]
 80019a4:	2b00      	cmp	r3, #0
 80019a6:	d1d8      	bne.n	800195a <timebase_available+0x16>
 80019a8:	f04f 23e0 	mov.w	r3, #3758153728	@ 0xe000e000
 80019ac:	695a      	ldr	r2, [r3, #20]
 80019ae:	4b06      	ldr	r3, [pc, #24]	@ (80019c8 <timebase_available+0x84>)
 80019b0:	429a      	cmp	r2, r3
 80019b2:	d1d2      	bne.n	800195a <timebase_available+0x16>
 80019b4:	f420 3080 	bic.w	r0, r0, #65536	@ 0x10000
 80019b8:	1fc3      	subs	r3, r0, #7
 80019ba:	4258      	negs	r0, r3
 80019bc:	4158      	adcs	r0, r3
 80019be:	e7cd      	b.n	800195c <timebase_available+0x18>
 80019c0:	20000118 	.word	0x20000118
 80019c4:	40021000 	.word	0x40021000
 80019c8:	0001f3ff 	.word	0x0001f3ff

080019cc <drill_timebase_init>:
 80019cc:	b538      	push	{r3, r4, r5, lr}
 80019ce:	4c28      	ldr	r4, [pc, #160]	@ (8001a70 <drill_timebase_init+0xa4>)
 80019d0:	7823      	ldrb	r3, [r4, #0]
 80019d2:	b113      	cbz	r3, 80019da <drill_timebase_init+0xe>
 80019d4:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 80019d8:	e7b4      	b.n	8001944 <timebase_available>
 80019da:	f7ff ff6f 	bl	80018bc <drill_clock_available>
 80019de:	2800      	cmp	r0, #0
 80019e0:	d043      	beq.n	8001a6a <drill_timebase_init+0x9e>
 80019e2:	f7ff fb47 	bl	8001074 <drill_pwm_stage_available>
 80019e6:	2800      	cmp	r0, #0
 80019e8:	d03f      	beq.n	8001a6a <drill_timebase_init+0x9e>
 80019ea:	4a22      	ldr	r2, [pc, #136]	@ (8001a74 <drill_timebase_init+0xa8>)
 80019ec:	6d93      	ldr	r3, [r2, #88]	@ 0x58
 80019ee:	07d9      	lsls	r1, r3, #31
 80019f0:	d43b      	bmi.n	8001a6a <drill_timebase_init+0x9e>
 80019f2:	f04f 20e0 	mov.w	r0, #3758153728	@ 0xe000e000
 80019f6:	6903      	ldr	r3, [r0, #16]
 80019f8:	07db      	lsls	r3, r3, #31
 80019fa:	d436      	bmi.n	8001a6a <drill_timebase_init+0x9e>
 80019fc:	6b93      	ldr	r3, [r2, #56]	@ 0x38
 80019fe:	f013 0301 	ands.w	r3, r3, #1
 8001a02:	d132      	bne.n	8001a6a <drill_timebase_init+0x9e>
 8001a04:	6d91      	ldr	r1, [r2, #88]	@ 0x58
 8001a06:	f041 0101 	orr.w	r1, r1, #1
 8001a0a:	6591      	str	r1, [r2, #88]	@ 0x58
 8001a0c:	6d91      	ldr	r1, [r2, #88]	@ 0x58
 8001a0e:	f3bf 8f4f 	dsb	sy
 8001a12:	6b91      	ldr	r1, [r2, #56]	@ 0x38
 8001a14:	f041 0101 	orr.w	r1, r1, #1
 8001a18:	6391      	str	r1, [r2, #56]	@ 0x38
 8001a1a:	f3bf 8f4f 	dsb	sy
 8001a1e:	6b91      	ldr	r1, [r2, #56]	@ 0x38
 8001a20:	f021 0101 	bic.w	r1, r1, #1
 8001a24:	6391      	str	r1, [r2, #56]	@ 0x38
 8001a26:	f3bf 8f4f 	dsb	sy
 8001a2a:	f04f 4280 	mov.w	r2, #1073741824	@ 0x40000000
 8001a2e:	217f      	movs	r1, #127	@ 0x7f
 8001a30:	6013      	str	r3, [r2, #0]
 8001a32:	6053      	str	r3, [r2, #4]
 8001a34:	6093      	str	r3, [r2, #8]
 8001a36:	60d3      	str	r3, [r2, #12]
 8001a38:	6213      	str	r3, [r2, #32]
 8001a3a:	6193      	str	r3, [r2, #24]
 8001a3c:	61d3      	str	r3, [r2, #28]
 8001a3e:	6291      	str	r1, [r2, #40]	@ 0x28
 8001a40:	f04f 31ff 	mov.w	r1, #4294967295	@ 0xffffffff
 8001a44:	62d1      	str	r1, [r2, #44]	@ 0x2c
 8001a46:	2101      	movs	r1, #1
 8001a48:	6253      	str	r3, [r2, #36]	@ 0x24
 8001a4a:	6151      	str	r1, [r2, #20]
 8001a4c:	6113      	str	r3, [r2, #16]
 8001a4e:	6011      	str	r1, [r2, #0]
 8001a50:	4a09      	ldr	r2, [pc, #36]	@ (8001a78 <drill_timebase_init+0xac>)
 8001a52:	6142      	str	r2, [r0, #20]
 8001a54:	4a09      	ldr	r2, [pc, #36]	@ (8001a7c <drill_timebase_init+0xb0>)
 8001a56:	25f0      	movs	r5, #240	@ 0xf0
 8001a58:	f882 5023 	strb.w	r5, [r2, #35]	@ 0x23
 8001a5c:	6183      	str	r3, [r0, #24]
 8001a5e:	2307      	movs	r3, #7
 8001a60:	6103      	str	r3, [r0, #16]
 8001a62:	f3bf 8f4f 	dsb	sy
 8001a66:	7021      	strb	r1, [r4, #0]
 8001a68:	e7b4      	b.n	80019d4 <drill_timebase_init+0x8>
 8001a6a:	2000      	movs	r0, #0
 8001a6c:	bd38      	pop	{r3, r4, r5, pc}
 8001a6e:	bf00      	nop
 8001a70:	20000118 	.word	0x20000118
 8001a74:	40021000 	.word	0x40021000
 8001a78:	0001f3ff 	.word	0x0001f3ff
 8001a7c:	e000ed00 	.word	0xe000ed00

08001a80 <drill_timebase_get>:
 8001a80:	b510      	push	{r4, lr}
 8001a82:	4604      	mov	r4, r0
 8001a84:	b130      	cbz	r0, 8001a94 <drill_timebase_get+0x14>
 8001a86:	f7ff ff5d 	bl	8001944 <timebase_available>
 8001a8a:	b118      	cbz	r0, 8001a94 <drill_timebase_get+0x14>
 8001a8c:	f04f 4380 	mov.w	r3, #1073741824	@ 0x40000000
 8001a90:	6a5b      	ldr	r3, [r3, #36]	@ 0x24
 8001a92:	6023      	str	r3, [r4, #0]
 8001a94:	bd10      	pop	{r4, pc}

08001a96 <SysTick_Handler>:
 8001a96:	4a02      	ldr	r2, [pc, #8]	@ (8001aa0 <SysTick_Handler+0xa>)
 8001a98:	6853      	ldr	r3, [r2, #4]
 8001a9a:	3301      	adds	r3, #1
 8001a9c:	6053      	str	r3, [r2, #4]
 8001a9e:	4770      	bx	lr
 8001aa0:	20000118 	.word	0x20000118

08001aa4 <du_regs>:
 8001aa4:	2a00      	cmp	r2, #0
 8001aa6:	b510      	push	{r4, lr}
 8001aa8:	68c4      	ldr	r4, [r0, #12]
 8001aaa:	bf0c      	ite	eq
 8001aac:	2300      	moveq	r3, #0
 8001aae:	f44f 63a8 	movne.w	r3, #1344	@ 0x540
 8001ab2:	429c      	cmp	r4, r3
 8001ab4:	d001      	beq.n	8001aba <du_regs+0x16>
 8001ab6:	2000      	movs	r0, #0
 8001ab8:	bd10      	pop	{r4, pc}
 8001aba:	6903      	ldr	r3, [r0, #16]
 8001abc:	2b00      	cmp	r3, #0
 8001abe:	d1fa      	bne.n	8001ab6 <du_regs+0x12>
 8001ac0:	6843      	ldr	r3, [r0, #4]
 8001ac2:	2b00      	cmp	r3, #0
 8001ac4:	d1f7      	bne.n	8001ab6 <du_regs+0x12>
 8001ac6:	f8d0 30b0 	ldr.w	r3, [r0, #176]	@ 0xb0
 8001aca:	2b00      	cmp	r3, #0
 8001acc:	d1f3      	bne.n	8001ab6 <du_regs+0x12>
 8001ace:	6cc3      	ldr	r3, [r0, #76]	@ 0x4c
 8001ad0:	2b00      	cmp	r3, #0
 8001ad2:	d1f0      	bne.n	8001ab6 <du_regs+0x12>
 8001ad4:	2901      	cmp	r1, #1
 8001ad6:	6944      	ldr	r4, [r0, #20]
 8001ad8:	bf0a      	itet	eq
 8001ada:	2210      	moveq	r2, #16
 8001adc:	2280      	movne	r2, #128	@ 0x80
 8001ade:	2301      	moveq	r3, #1
 8001ae0:	4294      	cmp	r4, r2
 8001ae2:	d1e8      	bne.n	8001ab6 <du_regs+0x12>
 8001ae4:	6982      	ldr	r2, [r0, #24]
 8001ae6:	2a00      	cmp	r2, #0
 8001ae8:	d1e5      	bne.n	8001ab6 <du_regs+0x12>
 8001aea:	2b00      	cmp	r3, #0
 8001aec:	6b02      	ldr	r2, [r0, #48]	@ 0x30
 8001aee:	bf14      	ite	ne
 8001af0:	2340      	movne	r3, #64	@ 0x40
 8001af2:	2380      	moveq	r3, #128	@ 0x80
 8001af4:	429a      	cmp	r2, r3
 8001af6:	d1de      	bne.n	8001ab6 <du_regs+0x12>
 8001af8:	6b43      	ldr	r3, [r0, #52]	@ 0x34
 8001afa:	2b00      	cmp	r3, #0
 8001afc:	d1db      	bne.n	8001ab6 <du_regs+0x12>
 8001afe:	6b83      	ldr	r3, [r0, #56]	@ 0x38
 8001b00:	2b00      	cmp	r3, #0
 8001b02:	d1d8      	bne.n	8001ab6 <du_regs+0x12>
 8001b04:	6bc3      	ldr	r3, [r0, #60]	@ 0x3c
 8001b06:	2b00      	cmp	r3, #0
 8001b08:	d1d5      	bne.n	8001ab6 <du_regs+0x12>
 8001b0a:	6e03      	ldr	r3, [r0, #96]	@ 0x60
 8001b0c:	2b00      	cmp	r3, #0
 8001b0e:	d1d2      	bne.n	8001ab6 <du_regs+0x12>
 8001b10:	6e43      	ldr	r3, [r0, #100]	@ 0x64
 8001b12:	2b00      	cmp	r3, #0
 8001b14:	d1cf      	bne.n	8001ab6 <du_regs+0x12>
 8001b16:	6e83      	ldr	r3, [r0, #104]	@ 0x68
 8001b18:	2b00      	cmp	r3, #0
 8001b1a:	d1cc      	bne.n	8001ab6 <du_regs+0x12>
 8001b1c:	6ec3      	ldr	r3, [r0, #108]	@ 0x6c
 8001b1e:	2b00      	cmp	r3, #0
 8001b20:	d1c9      	bne.n	8001ab6 <du_regs+0x12>
 8001b22:	f8d0 30c0 	ldr.w	r3, [r0, #192]	@ 0xc0
 8001b26:	2b00      	cmp	r3, #0
 8001b28:	d1c5      	bne.n	8001ab6 <du_regs+0x12>
 8001b2a:	4a12      	ldr	r2, [pc, #72]	@ (8001b74 <du_regs+0xd0>)
 8001b2c:	7813      	ldrb	r3, [r2, #0]
 8001b2e:	7811      	ldrb	r1, [r2, #0]
 8001b30:	2903      	cmp	r1, #3
 8001b32:	d917      	bls.n	8001b64 <du_regs+0xc0>
 8001b34:	7811      	ldrb	r1, [r2, #0]
 8001b36:	290a      	cmp	r1, #10
 8001b38:	490f      	ldr	r1, [pc, #60]	@ (8001b78 <du_regs+0xd4>)
 8001b3a:	bf28      	it	cs
 8001b3c:	f04f 5180 	movcs.w	r1, #268435456	@ 0x10000000
 8001b40:	7814      	ldrb	r4, [r2, #0]
 8001b42:	2c06      	cmp	r4, #6
 8001b44:	d002      	beq.n	8001b4c <du_regs+0xa8>
 8001b46:	7814      	ldrb	r4, [r2, #0]
 8001b48:	2c09      	cmp	r4, #9
 8001b4a:	d10e      	bne.n	8001b6a <du_regs+0xc6>
 8001b4c:	2304      	movs	r3, #4
 8001b4e:	7812      	ldrb	r2, [r2, #0]
 8001b50:	6880      	ldr	r0, [r0, #8]
 8001b52:	2a07      	cmp	r2, #7
 8001b54:	bf08      	it	eq
 8001b56:	2314      	moveq	r3, #20
 8001b58:	ea20 0003 	bic.w	r0, r0, r3
 8001b5c:	1a43      	subs	r3, r0, r1
 8001b5e:	4258      	negs	r0, r3
 8001b60:	4158      	adcs	r0, r3
 8001b62:	e7a9      	b.n	8001ab8 <du_regs+0x14>
 8001b64:	f04f 5180 	mov.w	r1, #268435456	@ 0x10000000
 8001b68:	e7ea      	b.n	8001b40 <du_regs+0x9c>
 8001b6a:	1e9c      	subs	r4, r3, #2
 8001b6c:	4263      	negs	r3, r4
 8001b6e:	4163      	adcs	r3, r4
 8001b70:	07db      	lsls	r3, r3, #31
 8001b72:	e7ec      	b.n	8001b4e <du_regs+0xaa>
 8001b74:	20000120 	.word	0x20000120
 8001b78:	10000001 	.word	0x10000001

08001b7c <ds_config>:
 8001b7c:	4a15      	ldr	r2, [pc, #84]	@ (8001bd4 <ds_config+0x58>)
 8001b7e:	7853      	ldrb	r3, [r2, #1]
 8001b80:	b90b      	cbnz	r3, 8001b86 <ds_config+0xa>
 8001b82:	2000      	movs	r0, #0
 8001b84:	4770      	bx	lr
 8001b86:	4914      	ldr	r1, [pc, #80]	@ (8001bd8 <ds_config+0x5c>)
 8001b88:	6c8b      	ldr	r3, [r1, #72]	@ 0x48
 8001b8a:	f003 0307 	and.w	r3, r3, #7
 8001b8e:	2b05      	cmp	r3, #5
 8001b90:	d1f7      	bne.n	8001b82 <ds_config+0x6>
 8001b92:	6a8b      	ldr	r3, [r1, #40]	@ 0x28
 8001b94:	f013 0f05 	tst.w	r3, #5
 8001b98:	d1f3      	bne.n	8001b82 <ds_config+0x6>
 8001b9a:	4b10      	ldr	r3, [pc, #64]	@ (8001bdc <ds_config+0x60>)
 8001b9c:	6898      	ldr	r0, [r3, #8]
 8001b9e:	f642 21a1 	movw	r1, #10913	@ 0x2aa1
 8001ba2:	4288      	cmp	r0, r1
 8001ba4:	d1ed      	bne.n	8001b82 <ds_config+0x6>
 8001ba6:	6918      	ldr	r0, [r3, #16]
 8001ba8:	490d      	ldr	r1, [pc, #52]	@ (8001be0 <ds_config+0x64>)
 8001baa:	4288      	cmp	r0, r1
 8001bac:	d1e9      	bne.n	8001b82 <ds_config+0x6>
 8001bae:	6959      	ldr	r1, [r3, #20]
 8001bb0:	3204      	adds	r2, #4
 8001bb2:	4291      	cmp	r1, r2
 8001bb4:	d1e5      	bne.n	8001b82 <ds_config+0x6>
 8001bb6:	f8d3 2800 	ldr.w	r2, [r3, #2048]	@ 0x800
 8001bba:	2a05      	cmp	r2, #5
 8001bbc:	d1e1      	bne.n	8001b82 <ds_config+0x6>
 8001bbe:	681b      	ldr	r3, [r3, #0]
 8001bc0:	071b      	lsls	r3, r3, #28
 8001bc2:	d4de      	bmi.n	8001b82 <ds_config+0x6>
 8001bc4:	4b07      	ldr	r3, [pc, #28]	@ (8001be4 <ds_config+0x68>)
 8001bc6:	f8d3 0080 	ldr.w	r0, [r3, #128]	@ 0x80
 8001bca:	43c0      	mvns	r0, r0
 8001bcc:	f000 0001 	and.w	r0, r0, #1
 8001bd0:	4770      	bx	lr
 8001bd2:	bf00      	nop
 8001bd4:	20000120 	.word	0x20000120
 8001bd8:	40021000 	.word	0x40021000
 8001bdc:	40020000 	.word	0x40020000
 8001be0:	5000030c 	.word	0x5000030c
 8001be4:	40020800 	.word	0x40020800

08001be8 <du_ok>:
 8001be8:	b538      	push	{r3, r4, r5, lr}
 8001bea:	4b35      	ldr	r3, [pc, #212]	@ (8001cc0 <du_ok+0xd8>)
 8001bec:	4c35      	ldr	r4, [pc, #212]	@ (8001cc4 <du_ok+0xdc>)
 8001bee:	681b      	ldr	r3, [r3, #0]
 8001bf0:	7822      	ldrb	r2, [r4, #0]
 8001bf2:	43db      	mvns	r3, r3
 8001bf4:	2a06      	cmp	r2, #6
 8001bf6:	f003 0301 	and.w	r3, r3, #1
 8001bfa:	d00a      	beq.n	8001c12 <du_ok+0x2a>
 8001bfc:	7822      	ldrb	r2, [r4, #0]
 8001bfe:	f1a2 0509 	sub.w	r5, r2, #9
 8001c02:	426a      	negs	r2, r5
 8001c04:	416a      	adcs	r2, r5
 8001c06:	4293      	cmp	r3, r2
 8001c08:	d105      	bne.n	8001c16 <du_ok+0x2e>
 8001c0a:	2000      	movs	r0, #0
 8001c0c:	f000 0001 	and.w	r0, r0, #1
 8001c10:	bd38      	pop	{r3, r4, r5, pc}
 8001c12:	2201      	movs	r2, #1
 8001c14:	e7f7      	b.n	8001c06 <du_ok+0x1e>
 8001c16:	4b2c      	ldr	r3, [pc, #176]	@ (8001cc8 <du_ok+0xe0>)
 8001c18:	781b      	ldrb	r3, [r3, #0]
 8001c1a:	2b00      	cmp	r3, #0
 8001c1c:	d1f5      	bne.n	8001c0a <du_ok+0x22>
 8001c1e:	4b2b      	ldr	r3, [pc, #172]	@ (8001ccc <du_ok+0xe4>)
 8001c20:	781b      	ldrb	r3, [r3, #0]
 8001c22:	2b05      	cmp	r3, #5
 8001c24:	d1f1      	bne.n	8001c0a <du_ok+0x22>
 8001c26:	f7ff fcf3 	bl	8001610 <drill_spi_sampling_available>
 8001c2a:	2800      	cmp	r0, #0
 8001c2c:	d0ed      	beq.n	8001c0a <du_ok+0x22>
 8001c2e:	4b28      	ldr	r3, [pc, #160]	@ (8001cd0 <du_ok+0xe8>)
 8001c30:	695a      	ldr	r2, [r3, #20]
 8001c32:	0790      	lsls	r0, r2, #30
 8001c34:	d5e9      	bpl.n	8001c0a <du_ok+0x22>
 8001c36:	691b      	ldr	r3, [r3, #16]
 8001c38:	0799      	lsls	r1, r3, #30
 8001c3a:	d5e6      	bpl.n	8001c0a <du_ok+0x22>
 8001c3c:	f04f 4390 	mov.w	r3, #1207959552	@ 0x48000000
 8001c40:	681a      	ldr	r2, [r3, #0]
 8001c42:	f412 5f40 	tst.w	r2, #12288	@ 0x3000
 8001c46:	d1e0      	bne.n	8001c0a <du_ok+0x22>
 8001c48:	691a      	ldr	r2, [r3, #16]
 8001c4a:	0652      	lsls	r2, r2, #25
 8001c4c:	d5dd      	bpl.n	8001c0a <du_ok+0x22>
 8001c4e:	681a      	ldr	r2, [r3, #0]
 8001c50:	f002 7240 	and.w	r2, r2, #50331648	@ 0x3000000
 8001c54:	f1b2 7f80 	cmp.w	r2, #16777216	@ 0x1000000
 8001c58:	d1d7      	bne.n	8001c0a <du_ok+0x22>
 8001c5a:	685b      	ldr	r3, [r3, #4]
 8001c5c:	04db      	lsls	r3, r3, #19
 8001c5e:	d4d4      	bmi.n	8001c0a <du_ok+0x22>
 8001c60:	f04f 4390 	mov.w	r3, #1207959552	@ 0x48000000
 8001c64:	695a      	ldr	r2, [r3, #20]
 8001c66:	04d5      	lsls	r5, r2, #19
 8001c68:	d5cf      	bpl.n	8001c0a <du_ok+0x22>
 8001c6a:	691a      	ldr	r2, [r3, #16]
 8001c6c:	04d0      	lsls	r0, r2, #19
 8001c6e:	d5cc      	bpl.n	8001c0a <du_ok+0x22>
 8001c70:	681a      	ldr	r2, [r3, #0]
 8001c72:	f002 020f 	and.w	r2, r2, #15
 8001c76:	2a0f      	cmp	r2, #15
 8001c78:	d1c7      	bne.n	8001c0a <du_ok+0x22>
 8001c7a:	68db      	ldr	r3, [r3, #12]
 8001c7c:	0719      	lsls	r1, r3, #28
 8001c7e:	d1c4      	bne.n	8001c0a <du_ok+0x22>
 8001c80:	4b14      	ldr	r3, [pc, #80]	@ (8001cd4 <du_ok+0xec>)
 8001c82:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 8001c84:	0492      	lsls	r2, r2, #18
 8001c86:	d5c0      	bpl.n	8001c0a <du_ok+0x22>
 8001c88:	6add      	ldr	r5, [r3, #44]	@ 0x2c
 8001c8a:	f415 5500 	ands.w	r5, r5, #8192	@ 0x2000
 8001c8e:	d1bc      	bne.n	8001c0a <du_ok+0x22>
 8001c90:	4b11      	ldr	r3, [pc, #68]	@ (8001cd8 <du_ok+0xf0>)
 8001c92:	4912      	ldr	r1, [pc, #72]	@ (8001cdc <du_ok+0xf4>)
 8001c94:	689a      	ldr	r2, [r3, #8]
 8001c96:	7820      	ldrb	r0, [r4, #0]
 8001c98:	4b11      	ldr	r3, [pc, #68]	@ (8001ce0 <du_ok+0xf8>)
 8001c9a:	2809      	cmp	r0, #9
 8001c9c:	bf08      	it	eq
 8001c9e:	460b      	moveq	r3, r1
 8001ca0:	429a      	cmp	r2, r3
 8001ca2:	d1b2      	bne.n	8001c0a <du_ok+0x22>
 8001ca4:	2201      	movs	r2, #1
 8001ca6:	4611      	mov	r1, r2
 8001ca8:	f04f 40a0 	mov.w	r0, #1342177280	@ 0x50000000
 8001cac:	f7ff fefa 	bl	8001aa4 <du_regs>
 8001cb0:	2800      	cmp	r0, #0
 8001cb2:	d0aa      	beq.n	8001c0a <du_ok+0x22>
 8001cb4:	462a      	mov	r2, r5
 8001cb6:	2102      	movs	r1, #2
 8001cb8:	480a      	ldr	r0, [pc, #40]	@ (8001ce4 <du_ok+0xfc>)
 8001cba:	f7ff fef3 	bl	8001aa4 <du_regs>
 8001cbe:	e7a5      	b.n	8001c0c <du_ok+0x24>
 8001cc0:	40012c00 	.word	0x40012c00
 8001cc4:	20000120 	.word	0x20000120
 8001cc8:	200001a9 	.word	0x200001a9
 8001ccc:	200001c0 	.word	0x200001c0
 8001cd0:	48001400 	.word	0x48001400
 8001cd4:	40021000 	.word	0x40021000
 8001cd8:	50000300 	.word	0x50000300
 8001cdc:	0003a006 	.word	0x0003a006
 8001ce0:	00030006 	.word	0x00030006
 8001ce4:	50000100 	.word	0x50000100

08001ce8 <du_fail>:
 8001ce8:	b570      	push	{r4, r5, r6, lr}
 8001cea:	4606      	mov	r6, r0
 8001cec:	f7ff fdde 	bl	80018ac <drill_spi_abort>
 8001cf0:	f7ff fb10 	bl	8001314 <drill_pwm_sampling_abort>
 8001cf4:	4b1f      	ldr	r3, [pc, #124]	@ (8001d74 <du_fail+0x8c>)
 8001cf6:	f240 2206 	movw	r2, #518	@ 0x206
 8001cfa:	801a      	strh	r2, [r3, #0]
 8001cfc:	4b1e      	ldr	r3, [pc, #120]	@ (8001d78 <du_fail+0x90>)
 8001cfe:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 8001d00:	0492      	lsls	r2, r2, #18
 8001d02:	d50f      	bpl.n	8001d24 <du_fail+0x3c>
 8001d04:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 8001d06:	f442 5200 	orr.w	r2, r2, #8192	@ 0x2000
 8001d0a:	62da      	str	r2, [r3, #44]	@ 0x2c
 8001d0c:	f3bf 8f4f 	dsb	sy
 8001d10:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 8001d12:	f422 5200 	bic.w	r2, r2, #8192	@ 0x2000
 8001d16:	62da      	str	r2, [r3, #44]	@ 0x2c
 8001d18:	f3bf 8f4f 	dsb	sy
 8001d1c:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 8001d1e:	f422 5200 	bic.w	r2, r2, #8192	@ 0x2000
 8001d22:	64da      	str	r2, [r3, #76]	@ 0x4c
 8001d24:	4c15      	ldr	r4, [pc, #84]	@ (8001d7c <du_fail+0x94>)
 8001d26:	7862      	ldrb	r2, [r4, #1]
 8001d28:	b1a2      	cbz	r2, 8001d54 <du_fail+0x6c>
 8001d2a:	6a9a      	ldr	r2, [r3, #40]	@ 0x28
 8001d2c:	f042 0201 	orr.w	r2, r2, #1
 8001d30:	629a      	str	r2, [r3, #40]	@ 0x28
 8001d32:	f3bf 8f4f 	dsb	sy
 8001d36:	6a9a      	ldr	r2, [r3, #40]	@ 0x28
 8001d38:	f022 0201 	bic.w	r2, r2, #1
 8001d3c:	629a      	str	r2, [r3, #40]	@ 0x28
 8001d3e:	f3bf 8f4f 	dsb	sy
 8001d42:	4a0f      	ldr	r2, [pc, #60]	@ (8001d80 <du_fail+0x98>)
 8001d44:	2100      	movs	r1, #0
 8001d46:	f8c2 1800 	str.w	r1, [r2, #2048]	@ 0x800
 8001d4a:	6c9a      	ldr	r2, [r3, #72]	@ 0x48
 8001d4c:	f022 0205 	bic.w	r2, r2, #5
 8001d50:	649a      	str	r2, [r3, #72]	@ 0x48
 8001d52:	7061      	strb	r1, [r4, #1]
 8001d54:	2500      	movs	r5, #0
 8001d56:	2218      	movs	r2, #24
 8001d58:	4629      	mov	r1, r5
 8001d5a:	480a      	ldr	r0, [pc, #40]	@ (8001d84 <du_fail+0x9c>)
 8001d5c:	7325      	strb	r5, [r4, #12]
 8001d5e:	f7fe fbbe 	bl	80004de <memset>
 8001d62:	4809      	ldr	r0, [pc, #36]	@ (8001d88 <du_fail+0xa0>)
 8001d64:	2218      	movs	r2, #24
 8001d66:	4629      	mov	r1, r5
 8001d68:	f7fe fbb9 	bl	80004de <memset>
 8001d6c:	230a      	movs	r3, #10
 8001d6e:	6426      	str	r6, [r4, #64]	@ 0x40
 8001d70:	7023      	strb	r3, [r4, #0]
 8001d72:	bd70      	pop	{r4, r5, r6, pc}
 8001d74:	200001c0 	.word	0x200001c0
 8001d78:	40021000 	.word	0x40021000
 8001d7c:	20000120 	.word	0x20000120
 8001d80:	40020000 	.word	0x40020000
 8001d84:	20000130 	.word	0x20000130
 8001d88:	20000148 	.word	0x20000148

08001d8c <drill_dual_bench_begin>:
 8001d8c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 8001d90:	4606      	mov	r6, r0
 8001d92:	460d      	mov	r5, r1
 8001d94:	b119      	cbz	r1, 8001d9e <drill_dual_bench_begin+0x12>
 8001d96:	4f5c      	ldr	r7, [pc, #368]	@ (8001f08 <drill_dual_bench_begin+0x17c>)
 8001d98:	783b      	ldrb	r3, [r7, #0]
 8001d9a:	b11b      	cbz	r3, 8001da4 <drill_dual_bench_begin+0x18>
 8001d9c:	2500      	movs	r5, #0
 8001d9e:	4628      	mov	r0, r5
 8001da0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 8001da4:	4b59      	ldr	r3, [pc, #356]	@ (8001f0c <drill_dual_bench_begin+0x180>)
 8001da6:	781b      	ldrb	r3, [r3, #0]
 8001da8:	2b00      	cmp	r3, #0
 8001daa:	d1f7      	bne.n	8001d9c <drill_dual_bench_begin+0x10>
 8001dac:	4b58      	ldr	r3, [pc, #352]	@ (8001f10 <drill_dual_bench_begin+0x184>)
 8001dae:	781b      	ldrb	r3, [r3, #0]
 8001db0:	2b05      	cmp	r3, #5
 8001db2:	d1f3      	bne.n	8001d9c <drill_dual_bench_begin+0x10>
 8001db4:	f7ff fc2a 	bl	800160c <drill_spi_available>
 8001db8:	4605      	mov	r5, r0
 8001dba:	2800      	cmp	r0, #0
 8001dbc:	d0ef      	beq.n	8001d9e <drill_dual_bench_begin+0x12>
 8001dbe:	f7ff fd69 	bl	8001894 <drill_spi_active>
 8001dc2:	4605      	mov	r5, r0
 8001dc4:	2800      	cmp	r0, #0
 8001dc6:	d1e9      	bne.n	8001d9c <drill_dual_bench_begin+0x10>
 8001dc8:	f8df 8148 	ldr.w	r8, [pc, #328]	@ 8001f14 <drill_dual_bench_begin+0x188>
 8001dcc:	f8d8 304c 	ldr.w	r3, [r8, #76]	@ 0x4c
 8001dd0:	049b      	lsls	r3, r3, #18
 8001dd2:	d4e4      	bmi.n	8001d9e <drill_dual_bench_begin+0x12>
 8001dd4:	f8d8 402c 	ldr.w	r4, [r8, #44]	@ 0x2c
 8001dd8:	f414 5400 	ands.w	r4, r4, #8192	@ 0x2000
 8001ddc:	d1df      	bne.n	8001d9e <drill_dual_bench_begin+0x12>
 8001dde:	f7ff fa41 	bl	8001264 <drill_pwm_sampling_arm>
 8001de2:	4605      	mov	r5, r0
 8001de4:	2800      	cmp	r0, #0
 8001de6:	d0da      	beq.n	8001d9e <drill_dual_bench_begin+0x12>
 8001de8:	f04f 4390 	mov.w	r3, #1207959552	@ 0x48000000
 8001dec:	681a      	ldr	r2, [r3, #0]
 8001dee:	f042 020f 	orr.w	r2, r2, #15
 8001df2:	601a      	str	r2, [r3, #0]
 8001df4:	68da      	ldr	r2, [r3, #12]
 8001df6:	f022 020f 	bic.w	r2, r2, #15
 8001dfa:	60da      	str	r2, [r3, #12]
 8001dfc:	f3bf 8f4f 	dsb	sy
 8001e00:	f8d8 304c 	ldr.w	r3, [r8, #76]	@ 0x4c
 8001e04:	f443 5300 	orr.w	r3, r3, #8192	@ 0x2000
 8001e08:	f8c8 304c 	str.w	r3, [r8, #76]	@ 0x4c
 8001e0c:	f8d8 304c 	ldr.w	r3, [r8, #76]	@ 0x4c
 8001e10:	f3bf 8f4f 	dsb	sy
 8001e14:	f8d8 302c 	ldr.w	r3, [r8, #44]	@ 0x2c
 8001e18:	f443 5300 	orr.w	r3, r3, #8192	@ 0x2000
 8001e1c:	f8c8 302c 	str.w	r3, [r8, #44]	@ 0x2c
 8001e20:	f3bf 8f4f 	dsb	sy
 8001e24:	f8d8 302c 	ldr.w	r3, [r8, #44]	@ 0x2c
 8001e28:	f423 5300 	bic.w	r3, r3, #8192	@ 0x2000
 8001e2c:	f8c8 302c 	str.w	r3, [r8, #44]	@ 0x2c
 8001e30:	f3bf 8f4f 	dsb	sy
 8001e34:	4b38      	ldr	r3, [pc, #224]	@ (8001f18 <drill_dual_bench_begin+0x18c>)
 8001e36:	4a39      	ldr	r2, [pc, #228]	@ (8001f1c <drill_dual_bench_begin+0x190>)
 8001e38:	609a      	str	r2, [r3, #8]
 8001e3a:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 8001e3e:	f44f 62a8 	mov.w	r2, #1344	@ 0x540
 8001e42:	60da      	str	r2, [r3, #12]
 8001e44:	2210      	movs	r2, #16
 8001e46:	611c      	str	r4, [r3, #16]
 8001e48:	605c      	str	r4, [r3, #4]
 8001e4a:	f8c3 40b0 	str.w	r4, [r3, #176]	@ 0xb0
 8001e4e:	64dc      	str	r4, [r3, #76]	@ 0x4c
 8001e50:	615a      	str	r2, [r3, #20]
 8001e52:	2240      	movs	r2, #64	@ 0x40
 8001e54:	619c      	str	r4, [r3, #24]
 8001e56:	631a      	str	r2, [r3, #48]	@ 0x30
 8001e58:	63dc      	str	r4, [r3, #60]	@ 0x3c
 8001e5a:	639c      	str	r4, [r3, #56]	@ 0x38
 8001e5c:	635c      	str	r4, [r3, #52]	@ 0x34
 8001e5e:	f8c3 40c0 	str.w	r4, [r3, #192]	@ 0xc0
 8001e62:	66dc      	str	r4, [r3, #108]	@ 0x6c
 8001e64:	669c      	str	r4, [r3, #104]	@ 0x68
 8001e66:	665c      	str	r4, [r3, #100]	@ 0x64
 8001e68:	661c      	str	r4, [r3, #96]	@ 0x60
 8001e6a:	689a      	ldr	r2, [r3, #8]
 8001e6c:	f022 5200 	bic.w	r2, r2, #536870912	@ 0x20000000
 8001e70:	609a      	str	r2, [r3, #8]
 8001e72:	689a      	ldr	r2, [r3, #8]
 8001e74:	f042 5280 	orr.w	r2, r2, #268435456	@ 0x10000000
 8001e78:	609a      	str	r2, [r3, #8]
 8001e7a:	2280      	movs	r2, #128	@ 0x80
 8001e7c:	f8c3 410c 	str.w	r4, [r3, #268]	@ 0x10c
 8001e80:	f8c3 4110 	str.w	r4, [r3, #272]	@ 0x110
 8001e84:	f8c3 4104 	str.w	r4, [r3, #260]	@ 0x104
 8001e88:	f8c3 41b0 	str.w	r4, [r3, #432]	@ 0x1b0
 8001e8c:	f8c3 414c 	str.w	r4, [r3, #332]	@ 0x14c
 8001e90:	f8c3 2114 	str.w	r2, [r3, #276]	@ 0x114
 8001e94:	f8c3 4118 	str.w	r4, [r3, #280]	@ 0x118
 8001e98:	f8c3 2130 	str.w	r2, [r3, #304]	@ 0x130
 8001e9c:	f8c3 413c 	str.w	r4, [r3, #316]	@ 0x13c
 8001ea0:	f8c3 4138 	str.w	r4, [r3, #312]	@ 0x138
 8001ea4:	f8c3 4134 	str.w	r4, [r3, #308]	@ 0x134
 8001ea8:	f8c3 41c0 	str.w	r4, [r3, #448]	@ 0x1c0
 8001eac:	f8c3 416c 	str.w	r4, [r3, #364]	@ 0x16c
 8001eb0:	f8c3 4168 	str.w	r4, [r3, #360]	@ 0x168
 8001eb4:	f8c3 4164 	str.w	r4, [r3, #356]	@ 0x164
 8001eb8:	f8c3 4160 	str.w	r4, [r3, #352]	@ 0x160
 8001ebc:	f8d3 2108 	ldr.w	r2, [r3, #264]	@ 0x108
 8001ec0:	f022 5200 	bic.w	r2, r2, #536870912	@ 0x20000000
 8001ec4:	f8c3 2108 	str.w	r2, [r3, #264]	@ 0x108
 8001ec8:	f8d3 2108 	ldr.w	r2, [r3, #264]	@ 0x108
 8001ecc:	f042 5280 	orr.w	r2, r2, #268435456	@ 0x10000000
 8001ed0:	f8c3 2108 	str.w	r2, [r3, #264]	@ 0x108
 8001ed4:	f3bf 8f4f 	dsb	sy
 8001ed8:	2218      	movs	r2, #24
 8001eda:	4621      	mov	r1, r4
 8001edc:	f107 0028 	add.w	r0, r7, #40	@ 0x28
 8001ee0:	e9c7 6611 	strd	r6, r6, [r7, #68]	@ 0x44
 8001ee4:	e9c7 6413 	strd	r6, r4, [r7, #76]	@ 0x4c
 8001ee8:	f7fe faf9 	bl	80004de <memset>
 8001eec:	2301      	movs	r3, #1
 8001eee:	643c      	str	r4, [r7, #64]	@ 0x40
 8001ef0:	703b      	strb	r3, [r7, #0]
 8001ef2:	f7ff fe79 	bl	8001be8 <du_ok>
 8001ef6:	4605      	mov	r5, r0
 8001ef8:	2800      	cmp	r0, #0
 8001efa:	f47f af50 	bne.w	8001d9e <drill_dual_bench_begin+0x12>
 8001efe:	2001      	movs	r0, #1
 8001f00:	f7ff fef2 	bl	8001ce8 <du_fail>
 8001f04:	e74b      	b.n	8001d9e <drill_dual_bench_begin+0x12>
 8001f06:	bf00      	nop
 8001f08:	20000120 	.word	0x20000120
 8001f0c:	200001a9 	.word	0x200001a9
 8001f10:	200001c0 	.word	0x200001c0
 8001f14:	40021000 	.word	0x40021000
 8001f18:	50000300 	.word	0x50000300
 8001f1c:	00030006 	.word	0x00030006

08001f20 <drill_dual_poll>:
 8001f20:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 8001f24:	4c87      	ldr	r4, [pc, #540]	@ (8002144 <drill_dual_poll+0x224>)
 8001f26:	7823      	ldrb	r3, [r4, #0]
 8001f28:	4605      	mov	r5, r0
 8001f2a:	2b00      	cmp	r3, #0
 8001f2c:	d049      	beq.n	8001fc2 <drill_dual_poll+0xa2>
 8001f2e:	7823      	ldrb	r3, [r4, #0]
 8001f30:	2b0a      	cmp	r3, #10
 8001f32:	d046      	beq.n	8001fc2 <drill_dual_poll+0xa2>
 8001f34:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 8001f36:	1ac3      	subs	r3, r0, r3
 8001f38:	d504      	bpl.n	8001f44 <drill_dual_poll+0x24>
 8001f3a:	2002      	movs	r0, #2
 8001f3c:	b003      	add	sp, #12
 8001f3e:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 8001f42:	e6d1      	b.n	8001ce8 <du_fail>
 8001f44:	64e0      	str	r0, [r4, #76]	@ 0x4c
 8001f46:	f7ff fe4f 	bl	8001be8 <du_ok>
 8001f4a:	b908      	cbnz	r0, 8001f50 <drill_dual_poll+0x30>
 8001f4c:	2001      	movs	r0, #1
 8001f4e:	e7f5      	b.n	8001f3c <drill_dual_poll+0x1c>
 8001f50:	4a7d      	ldr	r2, [pc, #500]	@ (8002148 <drill_dual_poll+0x228>)
 8001f52:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 8001f56:	681b      	ldr	r3, [r3, #0]
 8001f58:	6812      	ldr	r2, [r2, #0]
 8001f5a:	ea43 0102 	orr.w	r1, r3, r2
 8001f5e:	f411 6ffe 	tst.w	r1, #2032	@ 0x7f0
 8001f62:	d001      	beq.n	8001f68 <drill_dual_poll+0x48>
 8001f64:	2003      	movs	r0, #3
 8001f66:	e7e9      	b.n	8001f3c <drill_dual_poll+0x1c>
 8001f68:	7821      	ldrb	r1, [r4, #0]
 8001f6a:	2909      	cmp	r1, #9
 8001f6c:	f040 8087 	bne.w	800207e <drill_dual_poll+0x15e>
 8001f70:	6d63      	ldr	r3, [r4, #84]	@ 0x54
 8001f72:	1aeb      	subs	r3, r5, r3
 8001f74:	2b1e      	cmp	r3, #30
 8001f76:	d901      	bls.n	8001f7c <drill_dual_poll+0x5c>
 8001f78:	2006      	movs	r0, #6
 8001f7a:	e7df      	b.n	8001f3c <drill_dual_poll+0x1c>
 8001f7c:	f7ff fdfe 	bl	8001b7c <ds_config>
 8001f80:	b908      	cbnz	r0, 8001f86 <drill_dual_poll+0x66>
 8001f82:	2005      	movs	r0, #5
 8001f84:	e7da      	b.n	8001f3c <drill_dual_poll+0x1c>
 8001f86:	4b71      	ldr	r3, [pc, #452]	@ (800214c <drill_dual_poll+0x22c>)
 8001f88:	68de      	ldr	r6, [r3, #12]
 8001f8a:	2e02      	cmp	r6, #2
 8001f8c:	d8f9      	bhi.n	8001f82 <drill_dual_poll+0x62>
 8001f8e:	2e00      	cmp	r6, #0
 8001f90:	6da3      	ldr	r3, [r4, #88]	@ 0x58
 8001f92:	bf08      	it	eq
 8001f94:	2602      	moveq	r6, #2
 8001f96:	1b9b      	subs	r3, r3, r6
 8001f98:	f013 0301 	ands.w	r3, r3, #1
 8001f9c:	d005      	beq.n	8001faa <drill_dual_poll+0x8a>
 8001f9e:	7b22      	ldrb	r2, [r4, #12]
 8001fa0:	b11a      	cbz	r2, 8001faa <drill_dual_poll+0x8a>
 8001fa2:	2007      	movs	r0, #7
 8001fa4:	f7ff fea0 	bl	8001ce8 <du_fail>
 8001fa8:	e00b      	b.n	8001fc2 <drill_dual_poll+0xa2>
 8001faa:	4968      	ldr	r1, [pc, #416]	@ (800214c <drill_dual_poll+0x22c>)
 8001fac:	680a      	ldr	r2, [r1, #0]
 8001fae:	f002 0206 	and.w	r2, r2, #6
 8001fb2:	b94b      	cbnz	r3, 8001fc8 <drill_dual_poll+0xa8>
 8001fb4:	2a00      	cmp	r2, #0
 8001fb6:	d1f4      	bne.n	8001fa2 <drill_dual_poll+0x82>
 8001fb8:	6de3      	ldr	r3, [r4, #92]	@ 0x5c
 8001fba:	1aeb      	subs	r3, r5, r3
 8001fbc:	2b64      	cmp	r3, #100	@ 0x64
 8001fbe:	d8db      	bhi.n	8001f78 <drill_dual_poll+0x58>
 8001fc0:	6565      	str	r5, [r4, #84]	@ 0x54
 8001fc2:	b003      	add	sp, #12
 8001fc4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 8001fc8:	2e01      	cmp	r6, #1
 8001fca:	bf14      	ite	ne
 8001fcc:	2702      	movne	r7, #2
 8001fce:	2704      	moveq	r7, #4
 8001fd0:	2a00      	cmp	r2, #0
 8001fd2:	d0f6      	beq.n	8001fc2 <drill_dual_poll+0xa2>
 8001fd4:	42ba      	cmp	r2, r7
 8001fd6:	d1e4      	bne.n	8001fa2 <drill_dual_poll+0x82>
 8001fd8:	f3bf 8f5f 	dmb	sy
 8001fdc:	f1c6 0301 	rsb	r3, r6, #1
 8001fe0:	f003 0301 	and.w	r3, r3, #1
 8001fe4:	eb04 0383 	add.w	r3, r4, r3, lsl #2
 8001fe8:	f8d3 9004 	ldr.w	r9, [r3, #4]
 8001fec:	f3bf 8f5f 	dmb	sy
 8001ff0:	68cb      	ldr	r3, [r1, #12]
 8001ff2:	2b00      	cmp	r3, #0
 8001ff4:	bf08      	it	eq
 8001ff6:	2302      	moveq	r3, #2
 8001ff8:	429e      	cmp	r6, r3
 8001ffa:	d1d2      	bne.n	8001fa2 <drill_dual_poll+0x82>
 8001ffc:	a801      	add	r0, sp, #4
 8001ffe:	f7ff fd3f 	bl	8001a80 <drill_timebase_get>
 8002002:	2800      	cmp	r0, #0
 8002004:	d0cd      	beq.n	8001fa2 <drill_dual_poll+0x82>
 8002006:	6d62      	ldr	r2, [r4, #84]	@ 0x54
 8002008:	9b01      	ldr	r3, [sp, #4]
 800200a:	1a9b      	subs	r3, r3, r2
 800200c:	2b1e      	cmp	r3, #30
 800200e:	d8c8      	bhi.n	8001fa2 <drill_dual_poll+0x82>
 8002010:	f7ff fdb4 	bl	8001b7c <ds_config>
 8002014:	2800      	cmp	r0, #0
 8002016:	d0c4      	beq.n	8001fa2 <drill_dual_poll+0x82>
 8002018:	f7ff fde6 	bl	8001be8 <du_ok>
 800201c:	2800      	cmp	r0, #0
 800201e:	d0c0      	beq.n	8001fa2 <drill_dual_poll+0x82>
 8002020:	4a49      	ldr	r2, [pc, #292]	@ (8002148 <drill_dual_poll+0x228>)
 8002022:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 8002026:	681b      	ldr	r3, [r3, #0]
 8002028:	6812      	ldr	r2, [r2, #0]
 800202a:	4313      	orrs	r3, r2
 800202c:	f413 6ffe 	tst.w	r3, #2032	@ 0x7f0
 8002030:	d1b7      	bne.n	8001fa2 <drill_dual_poll+0x82>
 8002032:	f019 2ff0 	tst.w	r9, #4026593280	@ 0xf000f000
 8002036:	d001      	beq.n	800203c <drill_dual_poll+0x11c>
 8002038:	2004      	movs	r0, #4
 800203a:	e7b3      	b.n	8001fa4 <drill_dual_poll+0x84>
 800203c:	6e25      	ldr	r5, [r4, #96]	@ 0x60
 800203e:	4b44      	ldr	r3, [pc, #272]	@ (8002150 <drill_dual_poll+0x230>)
 8002040:	4844      	ldr	r0, [pc, #272]	@ (8002154 <drill_dual_poll+0x234>)
 8002042:	f8d3 b024 	ldr.w	fp, [r3, #36]	@ 0x24
 8002046:	f8dd 8004 	ldr.w	r8, [sp, #4]
 800204a:	f8d4 a048 	ldr.w	sl, [r4, #72]	@ 0x48
 800204e:	3501      	adds	r5, #1
 8002050:	2212      	movs	r2, #18
 8002052:	2100      	movs	r1, #0
 8002054:	6625      	str	r5, [r4, #96]	@ 0x60
 8002056:	f7fe fa42 	bl	80004de <memset>
 800205a:	2301      	movs	r3, #1
 800205c:	7323      	strb	r3, [r4, #12]
 800205e:	4b3b      	ldr	r3, [pc, #236]	@ (800214c <drill_dual_poll+0x22c>)
 8002060:	f8c4 9010 	str.w	r9, [r4, #16]
 8002064:	e9c4 a806 	strd	sl, r8, [r4, #24]
 8002068:	e9c4 8615 	strd	r8, r6, [r4, #84]	@ 0x54
 800206c:	f8a4 b014 	strh.w	fp, [r4, #20]
 8002070:	6225      	str	r5, [r4, #32]
 8002072:	f8c4 805c 	str.w	r8, [r4, #92]	@ 0x5c
 8002076:	605f      	str	r7, [r3, #4]
 8002078:	f3bf 8f4f 	dsb	sy
 800207c:	e7a1      	b.n	8001fc2 <drill_dual_poll+0xa2>
 800207e:	7821      	ldrb	r1, [r4, #0]
 8002080:	2904      	cmp	r1, #4
 8002082:	d806      	bhi.n	8002092 <drill_dual_poll+0x172>
 8002084:	6c61      	ldr	r1, [r4, #68]	@ 0x44
 8002086:	f241 3088 	movw	r0, #5000	@ 0x1388
 800208a:	1a69      	subs	r1, r5, r1
 800208c:	4281      	cmp	r1, r0
 800208e:	f63f af54 	bhi.w	8001f3a <drill_dual_poll+0x1a>
 8002092:	7821      	ldrb	r1, [r4, #0]
 8002094:	2901      	cmp	r1, #1
 8002096:	d112      	bne.n	80020be <drill_dual_poll+0x19e>
 8002098:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 800209a:	1aeb      	subs	r3, r5, r3
 800209c:	2b27      	cmp	r3, #39	@ 0x27
 800209e:	d990      	bls.n	8001fc2 <drill_dual_poll+0xa2>
 80020a0:	f04f 42a0 	mov.w	r2, #1342177280	@ 0x50000000
 80020a4:	6893      	ldr	r3, [r2, #8]
 80020a6:	f043 4300 	orr.w	r3, r3, #2147483648	@ 0x80000000
 80020aa:	6093      	str	r3, [r2, #8]
 80020ac:	f8d2 3108 	ldr.w	r3, [r2, #264]	@ 0x108
 80020b0:	f043 4300 	orr.w	r3, r3, #2147483648	@ 0x80000000
 80020b4:	f8c2 3108 	str.w	r3, [r2, #264]	@ 0x108
 80020b8:	2302      	movs	r3, #2
 80020ba:	7023      	strb	r3, [r4, #0]
 80020bc:	e781      	b.n	8001fc2 <drill_dual_poll+0xa2>
 80020be:	7821      	ldrb	r1, [r4, #0]
 80020c0:	2902      	cmp	r1, #2
 80020c2:	d10b      	bne.n	80020dc <drill_dual_poll+0x1bc>
 80020c4:	4a20      	ldr	r2, [pc, #128]	@ (8002148 <drill_dual_poll+0x228>)
 80020c6:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 80020ca:	689b      	ldr	r3, [r3, #8]
 80020cc:	6892      	ldr	r2, [r2, #8]
 80020ce:	4313      	orrs	r3, r2
 80020d0:	f53f af77 	bmi.w	8001fc2 <drill_dual_poll+0xa2>
 80020d4:	2303      	movs	r3, #3
 80020d6:	7023      	strb	r3, [r4, #0]
 80020d8:	64a5      	str	r5, [r4, #72]	@ 0x48
 80020da:	e772      	b.n	8001fc2 <drill_dual_poll+0xa2>
 80020dc:	7821      	ldrb	r1, [r4, #0]
 80020de:	2903      	cmp	r1, #3
 80020e0:	d116      	bne.n	8002110 <drill_dual_poll+0x1f0>
 80020e2:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 80020e4:	1aeb      	subs	r3, r5, r3
 80020e6:	2b01      	cmp	r3, #1
 80020e8:	f67f af6b 	bls.w	8001fc2 <drill_dual_poll+0xa2>
 80020ec:	4a16      	ldr	r2, [pc, #88]	@ (8002148 <drill_dual_poll+0x228>)
 80020ee:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 80020f2:	2101      	movs	r1, #1
 80020f4:	6019      	str	r1, [r3, #0]
 80020f6:	6011      	str	r1, [r2, #0]
 80020f8:	f3bf 8f4f 	dsb	sy
 80020fc:	6891      	ldr	r1, [r2, #8]
 80020fe:	f041 0101 	orr.w	r1, r1, #1
 8002102:	6091      	str	r1, [r2, #8]
 8002104:	689a      	ldr	r2, [r3, #8]
 8002106:	f042 0201 	orr.w	r2, r2, #1
 800210a:	609a      	str	r2, [r3, #8]
 800210c:	2304      	movs	r3, #4
 800210e:	e7d4      	b.n	80020ba <drill_dual_poll+0x19a>
 8002110:	7821      	ldrb	r1, [r4, #0]
 8002112:	2904      	cmp	r1, #4
 8002114:	d105      	bne.n	8002122 <drill_dual_poll+0x202>
 8002116:	401a      	ands	r2, r3
 8002118:	07d0      	lsls	r0, r2, #31
 800211a:	f57f af52 	bpl.w	8001fc2 <drill_dual_poll+0xa2>
 800211e:	2305      	movs	r3, #5
 8002120:	e7cb      	b.n	80020ba <drill_dual_poll+0x19a>
 8002122:	7821      	ldrb	r1, [r4, #0]
 8002124:	2906      	cmp	r1, #6
 8002126:	d14b      	bne.n	80021c0 <drill_dual_poll+0x2a0>
 8002128:	6ca1      	ldr	r1, [r4, #72]	@ 0x48
 800212a:	1a69      	subs	r1, r5, r1
 800212c:	2928      	cmp	r1, #40	@ 0x28
 800212e:	d901      	bls.n	8002134 <drill_dual_poll+0x214>
 8002130:	2002      	movs	r0, #2
 8002132:	e737      	b.n	8001fa4 <drill_dual_poll+0x84>
 8002134:	4013      	ands	r3, r2
 8002136:	0759      	lsls	r1, r3, #29
 8002138:	f57f af43 	bpl.w	8001fc2 <drill_dual_poll+0xa2>
 800213c:	071a      	lsls	r2, r3, #28
 800213e:	d40b      	bmi.n	8002158 <drill_dual_poll+0x238>
 8002140:	2003      	movs	r0, #3
 8002142:	e72f      	b.n	8001fa4 <drill_dual_poll+0x84>
 8002144:	20000120 	.word	0x20000120
 8002148:	50000100 	.word	0x50000100
 800214c:	40020000 	.word	0x40020000
 8002150:	40012c00 	.word	0x40012c00
 8002154:	20000136 	.word	0x20000136
 8002158:	f7ff f8cc 	bl	80012f4 <drill_pwm_sampling_pause>
 800215c:	a801      	add	r0, sp, #4
 800215e:	f7ff fc8f 	bl	8001a80 <drill_timebase_get>
 8002162:	2800      	cmp	r0, #0
 8002164:	d0e4      	beq.n	8002130 <drill_dual_poll+0x210>
 8002166:	9801      	ldr	r0, [sp, #4]
 8002168:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 800216a:	1ac3      	subs	r3, r0, r3
 800216c:	2b28      	cmp	r3, #40	@ 0x28
 800216e:	d8df      	bhi.n	8002130 <drill_dual_poll+0x210>
 8002170:	4920      	ldr	r1, [pc, #128]	@ (80021f4 <drill_dual_poll+0x2d4>)
 8002172:	f04f 42a0 	mov.w	r2, #1342177280	@ 0x50000000
 8002176:	6813      	ldr	r3, [r2, #0]
 8002178:	680e      	ldr	r6, [r1, #0]
 800217a:	ea43 0706 	orr.w	r7, r3, r6
 800217e:	f417 6ffe 	tst.w	r7, #2032	@ 0x7f0
 8002182:	d1dd      	bne.n	8002140 <drill_dual_poll+0x220>
 8002184:	4033      	ands	r3, r6
 8002186:	f003 030c 	and.w	r3, r3, #12
 800218a:	2b0c      	cmp	r3, #12
 800218c:	d1d8      	bne.n	8002140 <drill_dual_poll+0x220>
 800218e:	4b1a      	ldr	r3, [pc, #104]	@ (80021f8 <drill_dual_poll+0x2d8>)
 8002190:	68db      	ldr	r3, [r3, #12]
 8002192:	f013 2ff0 	tst.w	r3, #4026593280	@ 0xf000f000
 8002196:	f47f af4f 	bne.w	8002038 <drill_dual_poll+0x118>
 800219a:	62a3      	str	r3, [r4, #40]	@ 0x28
 800219c:	4b17      	ldr	r3, [pc, #92]	@ (80021fc <drill_dual_poll+0x2dc>)
 800219e:	6360      	str	r0, [r4, #52]	@ 0x34
 80021a0:	6a5b      	ldr	r3, [r3, #36]	@ 0x24
 80021a2:	85a3      	strh	r3, [r4, #44]	@ 0x2c
 80021a4:	230e      	movs	r3, #14
 80021a6:	6013      	str	r3, [r2, #0]
 80021a8:	600b      	str	r3, [r1, #0]
 80021aa:	f3bf 8f4f 	dsb	sy
 80021ae:	6893      	ldr	r3, [r2, #8]
 80021b0:	075b      	lsls	r3, r3, #29
 80021b2:	bf42      	ittt	mi
 80021b4:	6893      	ldrmi	r3, [r2, #8]
 80021b6:	f043 0310 	orrmi.w	r3, r3, #16
 80021ba:	6093      	strmi	r3, [r2, #8]
 80021bc:	2307      	movs	r3, #7
 80021be:	e78a      	b.n	80020d6 <drill_dual_poll+0x1b6>
 80021c0:	7823      	ldrb	r3, [r4, #0]
 80021c2:	2b07      	cmp	r3, #7
 80021c4:	f47f aefd 	bne.w	8001fc2 <drill_dual_poll+0xa2>
 80021c8:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 80021ca:	1aed      	subs	r5, r5, r3
 80021cc:	2d64      	cmp	r5, #100	@ 0x64
 80021ce:	f63f aeb4 	bhi.w	8001f3a <drill_dual_poll+0x1a>
 80021d2:	4a08      	ldr	r2, [pc, #32]	@ (80021f4 <drill_dual_poll+0x2d4>)
 80021d4:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 80021d8:	689b      	ldr	r3, [r3, #8]
 80021da:	6892      	ldr	r2, [r2, #8]
 80021dc:	4313      	orrs	r3, r2
 80021de:	f013 0f14 	tst.w	r3, #20
 80021e2:	f47f aeee 	bne.w	8001fc2 <drill_dual_poll+0xa2>
 80021e6:	6d23      	ldr	r3, [r4, #80]	@ 0x50
 80021e8:	3301      	adds	r3, #1
 80021ea:	6523      	str	r3, [r4, #80]	@ 0x50
 80021ec:	63a3      	str	r3, [r4, #56]	@ 0x38
 80021ee:	2308      	movs	r3, #8
 80021f0:	e763      	b.n	80020ba <drill_dual_poll+0x19a>
 80021f2:	bf00      	nop
 80021f4:	50000100 	.word	0x50000100
 80021f8:	50000300 	.word	0x50000300
 80021fc:	40012c00 	.word	0x40012c00

08002200 <drill_dual_capture_start>:
 8002200:	b538      	push	{r3, r4, r5, lr}
 8002202:	4c18      	ldr	r4, [pc, #96]	@ (8002264 <drill_dual_capture_start+0x64>)
 8002204:	7823      	ldrb	r3, [r4, #0]
 8002206:	2b05      	cmp	r3, #5
 8002208:	4605      	mov	r5, r0
 800220a:	d104      	bne.n	8002216 <drill_dual_capture_start+0x16>
 800220c:	f7ff fe88 	bl	8001f20 <drill_dual_poll>
 8002210:	7823      	ldrb	r3, [r4, #0]
 8002212:	2b05      	cmp	r3, #5
 8002214:	d002      	beq.n	800221c <drill_dual_capture_start+0x1c>
 8002216:	2400      	movs	r4, #0
 8002218:	4620      	mov	r0, r4
 800221a:	bd38      	pop	{r3, r4, r5, pc}
 800221c:	f7ff fb3a 	bl	8001894 <drill_spi_active>
 8002220:	4601      	mov	r1, r0
 8002222:	2800      	cmp	r0, #0
 8002224:	d1f7      	bne.n	8002216 <drill_dual_capture_start+0x16>
 8002226:	2218      	movs	r2, #24
 8002228:	f104 0028 	add.w	r0, r4, #40	@ 0x28
 800222c:	f7fe f957 	bl	80004de <memset>
 8002230:	490d      	ldr	r1, [pc, #52]	@ (8002268 <drill_dual_capture_start+0x68>)
 8002232:	6325      	str	r5, [r4, #48]	@ 0x30
 8002234:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 8002238:	220e      	movs	r2, #14
 800223a:	601a      	str	r2, [r3, #0]
 800223c:	600a      	str	r2, [r1, #0]
 800223e:	f3bf 8f4f 	dsb	sy
 8002242:	689a      	ldr	r2, [r3, #8]
 8002244:	f042 0204 	orr.w	r2, r2, #4
 8002248:	609a      	str	r2, [r3, #8]
 800224a:	2306      	movs	r3, #6
 800224c:	7023      	strb	r3, [r4, #0]
 800224e:	64a5      	str	r5, [r4, #72]	@ 0x48
 8002250:	f7ff f832 	bl	80012b8 <drill_pwm_sampling_start>
 8002254:	4604      	mov	r4, r0
 8002256:	2800      	cmp	r0, #0
 8002258:	d1de      	bne.n	8002218 <drill_dual_capture_start+0x18>
 800225a:	2001      	movs	r0, #1
 800225c:	f7ff fd44 	bl	8001ce8 <du_fail>
 8002260:	e7da      	b.n	8002218 <drill_dual_capture_start+0x18>
 8002262:	bf00      	nop
 8002264:	20000120 	.word	0x20000120
 8002268:	50000100 	.word	0x50000100

0800226c <drill_dual_take>:
 800226c:	b570      	push	{r4, r5, r6, lr}
 800226e:	4604      	mov	r4, r0
 8002270:	460d      	mov	r5, r1
 8002272:	b118      	cbz	r0, 800227c <drill_dual_take+0x10>
 8002274:	4e12      	ldr	r6, [pc, #72]	@ (80022c0 <drill_dual_take+0x54>)
 8002276:	7833      	ldrb	r3, [r6, #0]
 8002278:	2b08      	cmp	r3, #8
 800227a:	d001      	beq.n	8002280 <drill_dual_take+0x14>
 800227c:	2000      	movs	r0, #0
 800227e:	bd70      	pop	{r4, r5, r6, pc}
 8002280:	4608      	mov	r0, r1
 8002282:	f7ff fe4d 	bl	8001f20 <drill_dual_poll>
 8002286:	7833      	ldrb	r3, [r6, #0]
 8002288:	2b08      	cmp	r3, #8
 800228a:	d1f7      	bne.n	800227c <drill_dual_take+0x10>
 800228c:	6b73      	ldr	r3, [r6, #52]	@ 0x34
 800228e:	1aed      	subs	r5, r5, r3
 8002290:	2d64      	cmp	r5, #100	@ 0x64
 8002292:	d903      	bls.n	800229c <drill_dual_take+0x30>
 8002294:	2002      	movs	r0, #2
 8002296:	f7ff fd27 	bl	8001ce8 <du_fail>
 800229a:	e7ef      	b.n	800227c <drill_dual_take+0x10>
 800229c:	f106 0528 	add.w	r5, r6, #40	@ 0x28
 80022a0:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 80022a2:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 80022a4:	e895 0003 	ldmia.w	r5, {r0, r1}
 80022a8:	2218      	movs	r2, #24
 80022aa:	e884 0003 	stmia.w	r4, {r0, r1}
 80022ae:	2100      	movs	r1, #0
 80022b0:	f1a5 0010 	sub.w	r0, r5, #16
 80022b4:	f7fe f913 	bl	80004de <memset>
 80022b8:	2305      	movs	r3, #5
 80022ba:	7033      	strb	r3, [r6, #0]
 80022bc:	2001      	movs	r0, #1
 80022be:	e7de      	b.n	800227e <drill_dual_take+0x12>
 80022c0:	20000120 	.word	0x20000120

080022c4 <drill_dual_busy>:
 80022c4:	4b07      	ldr	r3, [pc, #28]	@ (80022e4 <drill_dual_busy+0x20>)
 80022c6:	781a      	ldrb	r2, [r3, #0]
 80022c8:	b90a      	cbnz	r2, 80022ce <drill_dual_busy+0xa>
 80022ca:	2000      	movs	r0, #0
 80022cc:	4770      	bx	lr
 80022ce:	781a      	ldrb	r2, [r3, #0]
 80022d0:	2a05      	cmp	r2, #5
 80022d2:	d0fa      	beq.n	80022ca <drill_dual_busy+0x6>
 80022d4:	781a      	ldrb	r2, [r3, #0]
 80022d6:	2a08      	cmp	r2, #8
 80022d8:	d0f7      	beq.n	80022ca <drill_dual_busy+0x6>
 80022da:	7818      	ldrb	r0, [r3, #0]
 80022dc:	380a      	subs	r0, #10
 80022de:	bf18      	it	ne
 80022e0:	2001      	movne	r0, #1
 80022e2:	4770      	bx	lr
 80022e4:	20000120 	.word	0x20000120

080022e8 <drill_dual_stream_start>:
 80022e8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 80022ec:	4c39      	ldr	r4, [pc, #228]	@ (80023d4 <drill_dual_stream_start+0xec>)
 80022ee:	7823      	ldrb	r3, [r4, #0]
 80022f0:	2b05      	cmp	r3, #5
 80022f2:	4680      	mov	r8, r0
 80022f4:	d101      	bne.n	80022fa <drill_dual_stream_start+0x12>
 80022f6:	7865      	ldrb	r5, [r4, #1]
 80022f8:	b11d      	cbz	r5, 8002302 <drill_dual_stream_start+0x1a>
 80022fa:	2500      	movs	r5, #0
 80022fc:	4628      	mov	r0, r5
 80022fe:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 8002302:	f7ff fe0d 	bl	8001f20 <drill_dual_poll>
 8002306:	7827      	ldrb	r7, [r4, #0]
 8002308:	2f05      	cmp	r7, #5
 800230a:	d1f7      	bne.n	80022fc <drill_dual_stream_start+0x14>
 800230c:	f7ff fac2 	bl	8001894 <drill_spi_active>
 8002310:	2800      	cmp	r0, #0
 8002312:	d1f3      	bne.n	80022fc <drill_dual_stream_start+0x14>
 8002314:	4b30      	ldr	r3, [pc, #192]	@ (80023d8 <drill_dual_stream_start+0xf0>)
 8002316:	6c9a      	ldr	r2, [r3, #72]	@ 0x48
 8002318:	0752      	lsls	r2, r2, #29
 800231a:	d1ee      	bne.n	80022fa <drill_dual_stream_start+0x12>
 800231c:	6a9a      	ldr	r2, [r3, #40]	@ 0x28
 800231e:	f012 0f05 	tst.w	r2, #5
 8002322:	d1ea      	bne.n	80022fa <drill_dual_stream_start+0x12>
 8002324:	6c9a      	ldr	r2, [r3, #72]	@ 0x48
 8002326:	f042 0205 	orr.w	r2, r2, #5
 800232a:	649a      	str	r2, [r3, #72]	@ 0x48
 800232c:	6c9a      	ldr	r2, [r3, #72]	@ 0x48
 800232e:	f3bf 8f4f 	dsb	sy
 8002332:	6a9a      	ldr	r2, [r3, #40]	@ 0x28
 8002334:	f042 0205 	orr.w	r2, r2, #5
 8002338:	629a      	str	r2, [r3, #40]	@ 0x28
 800233a:	f3bf 8f4f 	dsb	sy
 800233e:	6a9a      	ldr	r2, [r3, #40]	@ 0x28
 8002340:	f022 0205 	bic.w	r2, r2, #5
 8002344:	629a      	str	r2, [r3, #40]	@ 0x28
 8002346:	f3bf 8f4f 	dsb	sy
 800234a:	4e24      	ldr	r6, [pc, #144]	@ (80023dc <drill_dual_stream_start+0xf4>)
 800234c:	4a24      	ldr	r2, [pc, #144]	@ (80023e0 <drill_dual_stream_start+0xf8>)
 800234e:	6065      	str	r5, [r4, #4]
 8002350:	2301      	movs	r3, #1
 8002352:	7063      	strb	r3, [r4, #1]
 8002354:	60a5      	str	r5, [r4, #8]
 8002356:	60b5      	str	r5, [r6, #8]
 8002358:	6073      	str	r3, [r6, #4]
 800235a:	f8c2 3084 	str.w	r3, [r2, #132]	@ 0x84
 800235e:	f3bf 8f4f 	dsb	sy
 8002362:	4b20      	ldr	r3, [pc, #128]	@ (80023e4 <drill_dual_stream_start+0xfc>)
 8002364:	f8c6 7800 	str.w	r7, [r6, #2048]	@ 0x800
 8002368:	4a1f      	ldr	r2, [pc, #124]	@ (80023e8 <drill_dual_stream_start+0x100>)
 800236a:	6133      	str	r3, [r6, #16]
 800236c:	1d23      	adds	r3, r4, #4
 800236e:	6173      	str	r3, [r6, #20]
 8002370:	491e      	ldr	r1, [pc, #120]	@ (80023ec <drill_dual_stream_start+0x104>)
 8002372:	2302      	movs	r3, #2
 8002374:	60f3      	str	r3, [r6, #12]
 8002376:	f04f 47a0 	mov.w	r7, #1342177280	@ 0x50000000
 800237a:	6091      	str	r1, [r2, #8]
 800237c:	491c      	ldr	r1, [pc, #112]	@ (80023f0 <drill_dual_stream_start+0x108>)
 800237e:	220e      	movs	r2, #14
 8002380:	603a      	str	r2, [r7, #0]
 8002382:	600a      	str	r2, [r1, #0]
 8002384:	f3bf 8f4f 	dsb	sy
 8002388:	2218      	movs	r2, #24
 800238a:	4629      	mov	r1, r5
 800238c:	f104 0010 	add.w	r0, r4, #16
 8002390:	e9c4 3816 	strd	r3, r8, [r4, #88]	@ 0x58
 8002394:	f8c4 8048 	str.w	r8, [r4, #72]	@ 0x48
 8002398:	f8c4 8054 	str.w	r8, [r4, #84]	@ 0x54
 800239c:	6625      	str	r5, [r4, #96]	@ 0x60
 800239e:	7325      	strb	r5, [r4, #12]
 80023a0:	f7fe f89d 	bl	80004de <memset>
 80023a4:	f642 23a1 	movw	r3, #10913	@ 0x2aa1
 80023a8:	60b3      	str	r3, [r6, #8]
 80023aa:	f3bf 8f4f 	dsb	sy
 80023ae:	68bb      	ldr	r3, [r7, #8]
 80023b0:	f043 0304 	orr.w	r3, r3, #4
 80023b4:	60bb      	str	r3, [r7, #8]
 80023b6:	2309      	movs	r3, #9
 80023b8:	7023      	strb	r3, [r4, #0]
 80023ba:	f7ff fbdf 	bl	8001b7c <ds_config>
 80023be:	b918      	cbnz	r0, 80023c8 <drill_dual_stream_start+0xe0>
 80023c0:	2005      	movs	r0, #5
 80023c2:	f7ff fc91 	bl	8001ce8 <du_fail>
 80023c6:	e798      	b.n	80022fa <drill_dual_stream_start+0x12>
 80023c8:	f7fe ff76 	bl	80012b8 <drill_pwm_sampling_start>
 80023cc:	4605      	mov	r5, r0
 80023ce:	2800      	cmp	r0, #0
 80023d0:	d194      	bne.n	80022fc <drill_dual_stream_start+0x14>
 80023d2:	e7f5      	b.n	80023c0 <drill_dual_stream_start+0xd8>
 80023d4:	20000120 	.word	0x20000120
 80023d8:	40021000 	.word	0x40021000
 80023dc:	40020000 	.word	0x40020000
 80023e0:	40020800 	.word	0x40020800
 80023e4:	5000030c 	.word	0x5000030c
 80023e8:	50000300 	.word	0x50000300
 80023ec:	0003a006 	.word	0x0003a006
 80023f0:	50000100 	.word	0x50000100

080023f4 <drill_dual_stream_take>:
 80023f4:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 80023f6:	4604      	mov	r4, r0
 80023f8:	460d      	mov	r5, r1
 80023fa:	b118      	cbz	r0, 8002404 <drill_dual_stream_take+0x10>
 80023fc:	4f1b      	ldr	r7, [pc, #108]	@ (800246c <drill_dual_stream_take+0x78>)
 80023fe:	783b      	ldrb	r3, [r7, #0]
 8002400:	2b09      	cmp	r3, #9
 8002402:	d003      	beq.n	800240c <drill_dual_stream_take+0x18>
 8002404:	2600      	movs	r6, #0
 8002406:	4630      	mov	r0, r6
 8002408:	b003      	add	sp, #12
 800240a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 800240c:	4668      	mov	r0, sp
 800240e:	f7ff fb37 	bl	8001a80 <drill_timebase_get>
 8002412:	b918      	cbnz	r0, 800241c <drill_dual_stream_take+0x28>
 8002414:	2006      	movs	r0, #6
 8002416:	f7ff fc67 	bl	8001ce8 <du_fail>
 800241a:	e7f3      	b.n	8002404 <drill_dual_stream_take+0x10>
 800241c:	9800      	ldr	r0, [sp, #0]
 800241e:	1b45      	subs	r5, r0, r5
 8002420:	2d1e      	cmp	r5, #30
 8002422:	d8f7      	bhi.n	8002414 <drill_dual_stream_take+0x20>
 8002424:	f7ff fd7c 	bl	8001f20 <drill_dual_poll>
 8002428:	783b      	ldrb	r3, [r7, #0]
 800242a:	2b09      	cmp	r3, #9
 800242c:	d1ea      	bne.n	8002404 <drill_dual_stream_take+0x10>
 800242e:	7b3e      	ldrb	r6, [r7, #12]
 8002430:	2e00      	cmp	r6, #0
 8002432:	d0e8      	beq.n	8002406 <drill_dual_stream_take+0x12>
 8002434:	a801      	add	r0, sp, #4
 8002436:	f7ff fb23 	bl	8001a80 <drill_timebase_get>
 800243a:	4606      	mov	r6, r0
 800243c:	2800      	cmp	r0, #0
 800243e:	d0e9      	beq.n	8002414 <drill_dual_stream_take+0x20>
 8002440:	69fa      	ldr	r2, [r7, #28]
 8002442:	9b01      	ldr	r3, [sp, #4]
 8002444:	1a9b      	subs	r3, r3, r2
 8002446:	2b1e      	cmp	r3, #30
 8002448:	d8e4      	bhi.n	8002414 <drill_dual_stream_take+0x20>
 800244a:	f107 0510 	add.w	r5, r7, #16
 800244e:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8002450:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 8002452:	e895 0003 	ldmia.w	r5, {r0, r1}
 8002456:	2218      	movs	r2, #24
 8002458:	e884 0003 	stmia.w	r4, {r0, r1}
 800245c:	2100      	movs	r1, #0
 800245e:	f1a5 0010 	sub.w	r0, r5, #16
 8002462:	f7fe f83c 	bl	80004de <memset>
 8002466:	2300      	movs	r3, #0
 8002468:	733b      	strb	r3, [r7, #12]
 800246a:	e7cc      	b.n	8002406 <drill_dual_stream_take+0x12>
 800246c:	20000120 	.word	0x20000120

08002470 <drill_dual_stream_stop>:
 8002470:	4b02      	ldr	r3, [pc, #8]	@ (800247c <drill_dual_stream_stop+0xc>)
 8002472:	785b      	ldrb	r3, [r3, #1]
 8002474:	b10b      	cbz	r3, 800247a <drill_dual_stream_stop+0xa>
 8002476:	2000      	movs	r0, #0
 8002478:	e436      	b.n	8001ce8 <du_fail>
 800247a:	4770      	bx	lr
 800247c:	20000120 	.word	0x20000120

08002480 <drill_dual_abort>:
 8002480:	4b04      	ldr	r3, [pc, #16]	@ (8002494 <drill_dual_abort+0x14>)
 8002482:	781a      	ldrb	r2, [r3, #0]
 8002484:	b122      	cbz	r2, 8002490 <drill_dual_abort+0x10>
 8002486:	781b      	ldrb	r3, [r3, #0]
 8002488:	2b0a      	cmp	r3, #10
 800248a:	d001      	beq.n	8002490 <drill_dual_abort+0x10>
 800248c:	2008      	movs	r0, #8
 800248e:	e42b      	b.n	8001ce8 <du_fail>
 8002490:	4770      	bx	lr
 8002492:	bf00      	nop
 8002494:	20000120 	.word	0x20000120

08002498 <da_fail>:
 8002498:	b510      	push	{r4, lr}
 800249a:	4604      	mov	r4, r0
 800249c:	f7ff fa06 	bl	80018ac <drill_spi_abort>
 80024a0:	4b11      	ldr	r3, [pc, #68]	@ (80024e8 <da_fail+0x50>)
 80024a2:	f240 2206 	movw	r2, #518	@ 0x206
 80024a6:	801a      	strh	r2, [r3, #0]
 80024a8:	4b10      	ldr	r3, [pc, #64]	@ (80024ec <da_fail+0x54>)
 80024aa:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80024ac:	0492      	lsls	r2, r2, #18
 80024ae:	d50f      	bpl.n	80024d0 <da_fail+0x38>
 80024b0:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 80024b2:	f442 5200 	orr.w	r2, r2, #8192	@ 0x2000
 80024b6:	62da      	str	r2, [r3, #44]	@ 0x2c
 80024b8:	f3bf 8f4f 	dsb	sy
 80024bc:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 80024be:	f422 5200 	bic.w	r2, r2, #8192	@ 0x2000
 80024c2:	62da      	str	r2, [r3, #44]	@ 0x2c
 80024c4:	f3bf 8f4f 	dsb	sy
 80024c8:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80024ca:	f422 5200 	bic.w	r2, r2, #8192	@ 0x2000
 80024ce:	64da      	str	r2, [r3, #76]	@ 0x4c
 80024d0:	2224      	movs	r2, #36	@ 0x24
 80024d2:	4807      	ldr	r0, [pc, #28]	@ (80024f0 <da_fail+0x58>)
 80024d4:	2100      	movs	r1, #0
 80024d6:	f7fe f802 	bl	80004de <memset>
 80024da:	2208      	movs	r2, #8
 80024dc:	f880 4024 	strb.w	r4, [r0, #36]	@ 0x24
 80024e0:	f880 2025 	strb.w	r2, [r0, #37]	@ 0x25
 80024e4:	bd10      	pop	{r4, pc}
 80024e6:	bf00      	nop
 80024e8:	200001c0 	.word	0x200001c0
 80024ec:	40021000 	.word	0x40021000
 80024f0:	20000184 	.word	0x20000184

080024f4 <da_config_ok>:
 80024f4:	b510      	push	{r4, lr}
 80024f6:	f7ff f889 	bl	800160c <drill_spi_available>
 80024fa:	b120      	cbz	r0, 8002506 <da_config_ok+0x12>
 80024fc:	4b56      	ldr	r3, [pc, #344]	@ (8002658 <da_config_ok+0x164>)
 80024fe:	781b      	ldrb	r3, [r3, #0]
 8002500:	2b05      	cmp	r3, #5
 8002502:	d001      	beq.n	8002508 <da_config_ok+0x14>
 8002504:	2000      	movs	r0, #0
 8002506:	bd10      	pop	{r4, pc}
 8002508:	4b54      	ldr	r3, [pc, #336]	@ (800265c <da_config_ok+0x168>)
 800250a:	695a      	ldr	r2, [r3, #20]
 800250c:	0792      	lsls	r2, r2, #30
 800250e:	d5f9      	bpl.n	8002504 <da_config_ok+0x10>
 8002510:	691b      	ldr	r3, [r3, #16]
 8002512:	079b      	lsls	r3, r3, #30
 8002514:	d5f6      	bpl.n	8002504 <da_config_ok+0x10>
 8002516:	f04f 4390 	mov.w	r3, #1207959552	@ 0x48000000
 800251a:	681a      	ldr	r2, [r3, #0]
 800251c:	f412 5f40 	tst.w	r2, #12288	@ 0x3000
 8002520:	d1f0      	bne.n	8002504 <da_config_ok+0x10>
 8002522:	691a      	ldr	r2, [r3, #16]
 8002524:	0654      	lsls	r4, r2, #25
 8002526:	d5ed      	bpl.n	8002504 <da_config_ok+0x10>
 8002528:	681a      	ldr	r2, [r3, #0]
 800252a:	f002 7240 	and.w	r2, r2, #50331648	@ 0x3000000
 800252e:	f1b2 7f80 	cmp.w	r2, #16777216	@ 0x1000000
 8002532:	d1e7      	bne.n	8002504 <da_config_ok+0x10>
 8002534:	685a      	ldr	r2, [r3, #4]
 8002536:	04d1      	lsls	r1, r2, #19
 8002538:	d4e4      	bmi.n	8002504 <da_config_ok+0x10>
 800253a:	695a      	ldr	r2, [r3, #20]
 800253c:	04d2      	lsls	r2, r2, #19
 800253e:	d5e1      	bpl.n	8002504 <da_config_ok+0x10>
 8002540:	691b      	ldr	r3, [r3, #16]
 8002542:	04dc      	lsls	r4, r3, #19
 8002544:	d5de      	bpl.n	8002504 <da_config_ok+0x10>
 8002546:	4b46      	ldr	r3, [pc, #280]	@ (8002660 <da_config_ok+0x16c>)
 8002548:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 800254a:	0491      	lsls	r1, r2, #18
 800254c:	d5da      	bpl.n	8002504 <da_config_ok+0x10>
 800254e:	6adb      	ldr	r3, [r3, #44]	@ 0x2c
 8002550:	049a      	lsls	r2, r3, #18
 8002552:	d4d7      	bmi.n	8002504 <da_config_ok+0x10>
 8002554:	f04f 4290 	mov.w	r2, #1207959552	@ 0x48000000
 8002558:	6813      	ldr	r3, [r2, #0]
 800255a:	b2db      	uxtb	r3, r3
 800255c:	2bff      	cmp	r3, #255	@ 0xff
 800255e:	d1d1      	bne.n	8002504 <da_config_ok+0x10>
 8002560:	68d3      	ldr	r3, [r2, #12]
 8002562:	b2db      	uxtb	r3, r3
 8002564:	2b00      	cmp	r3, #0
 8002566:	d1cd      	bne.n	8002504 <da_config_ok+0x10>
 8002568:	4b3e      	ldr	r3, [pc, #248]	@ (8002664 <da_config_ok+0x170>)
 800256a:	689b      	ldr	r3, [r3, #8]
 800256c:	f5b3 3f40 	cmp.w	r3, #196608	@ 0x30000
 8002570:	d1c8      	bne.n	8002504 <da_config_ok+0x10>
 8002572:	4b3d      	ldr	r3, [pc, #244]	@ (8002668 <da_config_ok+0x174>)
 8002574:	689b      	ldr	r3, [r3, #8]
 8002576:	f1b3 5f00 	cmp.w	r3, #536870912	@ 0x20000000
 800257a:	d1c3      	bne.n	8002504 <da_config_ok+0x10>
 800257c:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 8002580:	68da      	ldr	r2, [r3, #12]
 8002582:	2a00      	cmp	r2, #0
 8002584:	d1be      	bne.n	8002504 <da_config_ok+0x10>
 8002586:	691a      	ldr	r2, [r3, #16]
 8002588:	2a00      	cmp	r2, #0
 800258a:	d1bb      	bne.n	8002504 <da_config_ok+0x10>
 800258c:	685a      	ldr	r2, [r3, #4]
 800258e:	2a00      	cmp	r2, #0
 8002590:	d1b8      	bne.n	8002504 <da_config_ok+0x10>
 8002592:	f8d3 30b0 	ldr.w	r3, [r3, #176]	@ 0xb0
 8002596:	2b00      	cmp	r3, #0
 8002598:	d1b4      	bne.n	8002504 <da_config_ok+0x10>
 800259a:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 800259e:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80025a0:	2a00      	cmp	r2, #0
 80025a2:	d1af      	bne.n	8002504 <da_config_ok+0x10>
 80025a4:	6959      	ldr	r1, [r3, #20]
 80025a6:	f647 72f8 	movw	r2, #32760	@ 0x7ff8
 80025aa:	4291      	cmp	r1, r2
 80025ac:	d1aa      	bne.n	8002504 <da_config_ok+0x10>
 80025ae:	699a      	ldr	r2, [r3, #24]
 80025b0:	2a00      	cmp	r2, #0
 80025b2:	d1a7      	bne.n	8002504 <da_config_ok+0x10>
 80025b4:	4a2d      	ldr	r2, [pc, #180]	@ (800266c <da_config_ok+0x178>)
 80025b6:	6b1c      	ldr	r4, [r3, #48]	@ 0x30
 80025b8:	6a91      	ldr	r1, [r2, #40]	@ 0x28
 80025ba:	3101      	adds	r1, #1
 80025bc:	ebb4 1f81 	cmp.w	r4, r1, lsl #6
 80025c0:	d1a0      	bne.n	8002504 <da_config_ok+0x10>
 80025c2:	6b59      	ldr	r1, [r3, #52]	@ 0x34
 80025c4:	2900      	cmp	r1, #0
 80025c6:	d19d      	bne.n	8002504 <da_config_ok+0x10>
 80025c8:	6b99      	ldr	r1, [r3, #56]	@ 0x38
 80025ca:	2900      	cmp	r1, #0
 80025cc:	d19a      	bne.n	8002504 <da_config_ok+0x10>
 80025ce:	6bd9      	ldr	r1, [r3, #60]	@ 0x3c
 80025d0:	2900      	cmp	r1, #0
 80025d2:	d197      	bne.n	8002504 <da_config_ok+0x10>
 80025d4:	6e19      	ldr	r1, [r3, #96]	@ 0x60
 80025d6:	2900      	cmp	r1, #0
 80025d8:	d194      	bne.n	8002504 <da_config_ok+0x10>
 80025da:	6e59      	ldr	r1, [r3, #100]	@ 0x64
 80025dc:	2900      	cmp	r1, #0
 80025de:	d191      	bne.n	8002504 <da_config_ok+0x10>
 80025e0:	6e9b      	ldr	r3, [r3, #104]	@ 0x68
 80025e2:	2b00      	cmp	r3, #0
 80025e4:	d18e      	bne.n	8002504 <da_config_ok+0x10>
 80025e6:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 80025ea:	6ed9      	ldr	r1, [r3, #108]	@ 0x6c
 80025ec:	2900      	cmp	r1, #0
 80025ee:	d189      	bne.n	8002504 <da_config_ok+0x10>
 80025f0:	f8d3 10c0 	ldr.w	r1, [r3, #192]	@ 0xc0
 80025f4:	2900      	cmp	r1, #0
 80025f6:	d185      	bne.n	8002504 <da_config_ok+0x10>
 80025f8:	f892 1025 	ldrb.w	r1, [r2, #37]	@ 0x25
 80025fc:	2902      	cmp	r1, #2
 80025fe:	d107      	bne.n	8002610 <da_config_ok+0x11c>
 8002600:	689b      	ldr	r3, [r3, #8]
 8002602:	f023 4300 	bic.w	r3, r3, #2147483648	@ 0x80000000
 8002606:	f1b3 5f80 	cmp.w	r3, #268435456	@ 0x10000000
 800260a:	f47f af7b 	bne.w	8002504 <da_config_ok+0x10>
 800260e:	e004      	b.n	800261a <da_config_ok+0x126>
 8002610:	f892 1025 	ldrb.w	r1, [r2, #37]	@ 0x25
 8002614:	2904      	cmp	r1, #4
 8002616:	d109      	bne.n	800262c <da_config_ok+0x138>
 8002618:	4b15      	ldr	r3, [pc, #84]	@ (8002670 <da_config_ok+0x17c>)
 800261a:	f892 2025 	ldrb.w	r2, [r2, #37]	@ 0x25
 800261e:	2a02      	cmp	r2, #2
 8002620:	f43f af71 	beq.w	8002506 <da_config_ok+0x12>
 8002624:	f04f 42a0 	mov.w	r2, #1342177280	@ 0x50000000
 8002628:	6890      	ldr	r0, [r2, #8]
 800262a:	e00f      	b.n	800264c <da_config_ok+0x158>
 800262c:	f892 1025 	ldrb.w	r1, [r2, #37]	@ 0x25
 8002630:	2905      	cmp	r1, #5
 8002632:	d0f1      	beq.n	8002618 <da_config_ok+0x124>
 8002634:	f892 1025 	ldrb.w	r1, [r2, #37]	@ 0x25
 8002638:	2907      	cmp	r1, #7
 800263a:	d0ed      	beq.n	8002618 <da_config_ok+0x124>
 800263c:	f892 1025 	ldrb.w	r1, [r2, #37]	@ 0x25
 8002640:	2906      	cmp	r1, #6
 8002642:	d107      	bne.n	8002654 <da_config_ok+0x160>
 8002644:	6898      	ldr	r0, [r3, #8]
 8002646:	4b0a      	ldr	r3, [pc, #40]	@ (8002670 <da_config_ok+0x17c>)
 8002648:	f020 0004 	bic.w	r0, r0, #4
 800264c:	1ac3      	subs	r3, r0, r3
 800264e:	4258      	negs	r0, r3
 8002650:	4158      	adcs	r0, r3
 8002652:	e758      	b.n	8002506 <da_config_ok+0x12>
 8002654:	689b      	ldr	r3, [r3, #8]
 8002656:	e7d6      	b.n	8002606 <da_config_ok+0x112>
 8002658:	200001c0 	.word	0x200001c0
 800265c:	48001400 	.word	0x48001400
 8002660:	40021000 	.word	0x40021000
 8002664:	50000300 	.word	0x50000300
 8002668:	50000100 	.word	0x50000100
 800266c:	20000184 	.word	0x20000184
 8002670:	10000001 	.word	0x10000001

08002674 <drill_adc_bench_begin>:
 8002674:	b570      	push	{r4, r5, r6, lr}
 8002676:	4606      	mov	r6, r0
 8002678:	460c      	mov	r4, r1
 800267a:	b121      	cbz	r1, 8002686 <drill_adc_bench_begin+0x12>
 800267c:	4d3b      	ldr	r5, [pc, #236]	@ (800276c <drill_adc_bench_begin+0xf8>)
 800267e:	f895 3025 	ldrb.w	r3, [r5, #37]	@ 0x25
 8002682:	b113      	cbz	r3, 800268a <drill_adc_bench_begin+0x16>
 8002684:	2400      	movs	r4, #0
 8002686:	4620      	mov	r0, r4
 8002688:	bd70      	pop	{r4, r5, r6, pc}
 800268a:	4b39      	ldr	r3, [pc, #228]	@ (8002770 <drill_adc_bench_begin+0xfc>)
 800268c:	781b      	ldrb	r3, [r3, #0]
 800268e:	2b05      	cmp	r3, #5
 8002690:	d1f8      	bne.n	8002684 <drill_adc_bench_begin+0x10>
 8002692:	f7fe ffbb 	bl	800160c <drill_spi_available>
 8002696:	4604      	mov	r4, r0
 8002698:	2800      	cmp	r0, #0
 800269a:	d0f4      	beq.n	8002686 <drill_adc_bench_begin+0x12>
 800269c:	f7ff f8fa 	bl	8001894 <drill_spi_active>
 80026a0:	4604      	mov	r4, r0
 80026a2:	2800      	cmp	r0, #0
 80026a4:	d1ee      	bne.n	8002684 <drill_adc_bench_begin+0x10>
 80026a6:	4b33      	ldr	r3, [pc, #204]	@ (8002774 <drill_adc_bench_begin+0x100>)
 80026a8:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80026aa:	0491      	lsls	r1, r2, #18
 80026ac:	d4eb      	bmi.n	8002686 <drill_adc_bench_begin+0x12>
 80026ae:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 80026b0:	0492      	lsls	r2, r2, #18
 80026b2:	d4e8      	bmi.n	8002686 <drill_adc_bench_begin+0x12>
 80026b4:	f04f 4290 	mov.w	r2, #1207959552	@ 0x48000000
 80026b8:	6811      	ldr	r1, [r2, #0]
 80026ba:	f041 01ff 	orr.w	r1, r1, #255	@ 0xff
 80026be:	6011      	str	r1, [r2, #0]
 80026c0:	68d1      	ldr	r1, [r2, #12]
 80026c2:	f021 01ff 	bic.w	r1, r1, #255	@ 0xff
 80026c6:	60d1      	str	r1, [r2, #12]
 80026c8:	f3bf 8f4f 	dsb	sy
 80026cc:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80026ce:	f442 5200 	orr.w	r2, r2, #8192	@ 0x2000
 80026d2:	64da      	str	r2, [r3, #76]	@ 0x4c
 80026d4:	6cda      	ldr	r2, [r3, #76]	@ 0x4c
 80026d6:	f3bf 8f4f 	dsb	sy
 80026da:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 80026dc:	f442 5200 	orr.w	r2, r2, #8192	@ 0x2000
 80026e0:	62da      	str	r2, [r3, #44]	@ 0x2c
 80026e2:	f3bf 8f4f 	dsb	sy
 80026e6:	6ada      	ldr	r2, [r3, #44]	@ 0x2c
 80026e8:	f422 5200 	bic.w	r2, r2, #8192	@ 0x2000
 80026ec:	62da      	str	r2, [r3, #44]	@ 0x2c
 80026ee:	f3bf 8f4f 	dsb	sy
 80026f2:	4b21      	ldr	r3, [pc, #132]	@ (8002778 <drill_adc_bench_begin+0x104>)
 80026f4:	f44f 3240 	mov.w	r2, #196608	@ 0x30000
 80026f8:	609a      	str	r2, [r3, #8]
 80026fa:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 80026fe:	f647 72f8 	movw	r2, #32760	@ 0x7ff8
 8002702:	60d8      	str	r0, [r3, #12]
 8002704:	6118      	str	r0, [r3, #16]
 8002706:	6058      	str	r0, [r3, #4]
 8002708:	f8c3 00b0 	str.w	r0, [r3, #176]	@ 0xb0
 800270c:	64d8      	str	r0, [r3, #76]	@ 0x4c
 800270e:	615a      	str	r2, [r3, #20]
 8002710:	2240      	movs	r2, #64	@ 0x40
 8002712:	6198      	str	r0, [r3, #24]
 8002714:	631a      	str	r2, [r3, #48]	@ 0x30
 8002716:	63d8      	str	r0, [r3, #60]	@ 0x3c
 8002718:	6398      	str	r0, [r3, #56]	@ 0x38
 800271a:	6358      	str	r0, [r3, #52]	@ 0x34
 800271c:	f8c3 00c0 	str.w	r0, [r3, #192]	@ 0xc0
 8002720:	66d8      	str	r0, [r3, #108]	@ 0x6c
 8002722:	6698      	str	r0, [r3, #104]	@ 0x68
 8002724:	6658      	str	r0, [r3, #100]	@ 0x64
 8002726:	6618      	str	r0, [r3, #96]	@ 0x60
 8002728:	689a      	ldr	r2, [r3, #8]
 800272a:	f022 5200 	bic.w	r2, r2, #536870912	@ 0x20000000
 800272e:	609a      	str	r2, [r3, #8]
 8002730:	689a      	ldr	r2, [r3, #8]
 8002732:	f042 5280 	orr.w	r2, r2, #268435456	@ 0x10000000
 8002736:	609a      	str	r2, [r3, #8]
 8002738:	f3bf 8f4f 	dsb	sy
 800273c:	2224      	movs	r2, #36	@ 0x24
 800273e:	4601      	mov	r1, r0
 8002740:	e9c5 660b 	strd	r6, r6, [r5, #44]	@ 0x2c
 8002744:	636e      	str	r6, [r5, #52]	@ 0x34
 8002746:	62a8      	str	r0, [r5, #40]	@ 0x28
 8002748:	63a8      	str	r0, [r5, #56]	@ 0x38
 800274a:	2601      	movs	r6, #1
 800274c:	4628      	mov	r0, r5
 800274e:	f7fd fec6 	bl	80004de <memset>
 8002752:	f885 4024 	strb.w	r4, [r5, #36]	@ 0x24
 8002756:	f885 6025 	strb.w	r6, [r5, #37]	@ 0x25
 800275a:	f7ff fecb 	bl	80024f4 <da_config_ok>
 800275e:	4604      	mov	r4, r0
 8002760:	2800      	cmp	r0, #0
 8002762:	d190      	bne.n	8002686 <drill_adc_bench_begin+0x12>
 8002764:	4630      	mov	r0, r6
 8002766:	f7ff fe97 	bl	8002498 <da_fail>
 800276a:	e78c      	b.n	8002686 <drill_adc_bench_begin+0x12>
 800276c:	20000184 	.word	0x20000184
 8002770:	200001c0 	.word	0x200001c0
 8002774:	40021000 	.word	0x40021000
 8002778:	50000300 	.word	0x50000300

0800277c <drill_adc_poll>:
 800277c:	b538      	push	{r3, r4, r5, lr}
 800277e:	4c53      	ldr	r4, [pc, #332]	@ (80028cc <drill_adc_poll+0x150>)
 8002780:	f894 3025 	ldrb.w	r3, [r4, #37]	@ 0x25
 8002784:	4605      	mov	r5, r0
 8002786:	b3a3      	cbz	r3, 80027f2 <drill_adc_poll+0x76>
 8002788:	f894 3025 	ldrb.w	r3, [r4, #37]	@ 0x25
 800278c:	2b08      	cmp	r3, #8
 800278e:	d030      	beq.n	80027f2 <drill_adc_poll+0x76>
 8002790:	6b63      	ldr	r3, [r4, #52]	@ 0x34
 8002792:	1ac3      	subs	r3, r0, r3
 8002794:	d503      	bpl.n	800279e <drill_adc_poll+0x22>
 8002796:	2002      	movs	r0, #2
 8002798:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 800279c:	e67c      	b.n	8002498 <da_fail>
 800279e:	6360      	str	r0, [r4, #52]	@ 0x34
 80027a0:	f7ff fea8 	bl	80024f4 <da_config_ok>
 80027a4:	b908      	cbnz	r0, 80027aa <drill_adc_poll+0x2e>
 80027a6:	2001      	movs	r0, #1
 80027a8:	e7f6      	b.n	8002798 <drill_adc_poll+0x1c>
 80027aa:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 80027ae:	681b      	ldr	r3, [r3, #0]
 80027b0:	f413 6ffe 	tst.w	r3, #2032	@ 0x7f0
 80027b4:	d001      	beq.n	80027ba <drill_adc_poll+0x3e>
 80027b6:	2003      	movs	r0, #3
 80027b8:	e7ee      	b.n	8002798 <drill_adc_poll+0x1c>
 80027ba:	f894 2025 	ldrb.w	r2, [r4, #37]	@ 0x25
 80027be:	2a04      	cmp	r2, #4
 80027c0:	d805      	bhi.n	80027ce <drill_adc_poll+0x52>
 80027c2:	6ae2      	ldr	r2, [r4, #44]	@ 0x2c
 80027c4:	f241 3188 	movw	r1, #5000	@ 0x1388
 80027c8:	1aaa      	subs	r2, r5, r2
 80027ca:	428a      	cmp	r2, r1
 80027cc:	d8e3      	bhi.n	8002796 <drill_adc_poll+0x1a>
 80027ce:	f894 2025 	ldrb.w	r2, [r4, #37]	@ 0x25
 80027d2:	2a01      	cmp	r2, #1
 80027d4:	d10e      	bne.n	80027f4 <drill_adc_poll+0x78>
 80027d6:	6b23      	ldr	r3, [r4, #48]	@ 0x30
 80027d8:	1aeb      	subs	r3, r5, r3
 80027da:	2b27      	cmp	r3, #39	@ 0x27
 80027dc:	d909      	bls.n	80027f2 <drill_adc_poll+0x76>
 80027de:	f04f 42a0 	mov.w	r2, #1342177280	@ 0x50000000
 80027e2:	6893      	ldr	r3, [r2, #8]
 80027e4:	f043 4300 	orr.w	r3, r3, #2147483648	@ 0x80000000
 80027e8:	6093      	str	r3, [r2, #8]
 80027ea:	2302      	movs	r3, #2
 80027ec:	f884 3025 	strb.w	r3, [r4, #37]	@ 0x25
 80027f0:	6325      	str	r5, [r4, #48]	@ 0x30
 80027f2:	bd38      	pop	{r3, r4, r5, pc}
 80027f4:	f894 2025 	ldrb.w	r2, [r4, #37]	@ 0x25
 80027f8:	2a02      	cmp	r2, #2
 80027fa:	d106      	bne.n	800280a <drill_adc_poll+0x8e>
 80027fc:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 8002800:	689b      	ldr	r3, [r3, #8]
 8002802:	2b00      	cmp	r3, #0
 8002804:	dbf5      	blt.n	80027f2 <drill_adc_poll+0x76>
 8002806:	2303      	movs	r3, #3
 8002808:	e7f0      	b.n	80027ec <drill_adc_poll+0x70>
 800280a:	f894 2025 	ldrb.w	r2, [r4, #37]	@ 0x25
 800280e:	2a03      	cmp	r2, #3
 8002810:	d10f      	bne.n	8002832 <drill_adc_poll+0xb6>
 8002812:	6b23      	ldr	r3, [r4, #48]	@ 0x30
 8002814:	1aeb      	subs	r3, r5, r3
 8002816:	2b01      	cmp	r3, #1
 8002818:	d9eb      	bls.n	80027f2 <drill_adc_poll+0x76>
 800281a:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 800281e:	2201      	movs	r2, #1
 8002820:	601a      	str	r2, [r3, #0]
 8002822:	f3bf 8f4f 	dsb	sy
 8002826:	689a      	ldr	r2, [r3, #8]
 8002828:	f042 0201 	orr.w	r2, r2, #1
 800282c:	609a      	str	r2, [r3, #8]
 800282e:	2304      	movs	r3, #4
 8002830:	e7dc      	b.n	80027ec <drill_adc_poll+0x70>
 8002832:	f894 2025 	ldrb.w	r2, [r4, #37]	@ 0x25
 8002836:	2a04      	cmp	r2, #4
 8002838:	d105      	bne.n	8002846 <drill_adc_poll+0xca>
 800283a:	07d8      	lsls	r0, r3, #31
 800283c:	d5d9      	bpl.n	80027f2 <drill_adc_poll+0x76>
 800283e:	2305      	movs	r3, #5
 8002840:	f884 3025 	strb.w	r3, [r4, #37]	@ 0x25
 8002844:	e7d5      	b.n	80027f2 <drill_adc_poll+0x76>
 8002846:	f894 2025 	ldrb.w	r2, [r4, #37]	@ 0x25
 800284a:	2a06      	cmp	r2, #6
 800284c:	d1d1      	bne.n	80027f2 <drill_adc_poll+0x76>
 800284e:	6b22      	ldr	r2, [r4, #48]	@ 0x30
 8002850:	1aaa      	subs	r2, r5, r2
 8002852:	f5b2 7f7a 	cmp.w	r2, #1000	@ 0x3e8
 8002856:	d89e      	bhi.n	8002796 <drill_adc_poll+0x1a>
 8002858:	0759      	lsls	r1, r3, #29
 800285a:	f003 0208 	and.w	r2, r3, #8
 800285e:	d402      	bmi.n	8002866 <drill_adc_poll+0xea>
 8002860:	2a00      	cmp	r2, #0
 8002862:	d0c6      	beq.n	80027f2 <drill_adc_poll+0x76>
 8002864:	e7a7      	b.n	80027b6 <drill_adc_poll+0x3a>
 8002866:	2a00      	cmp	r2, #0
 8002868:	d0a5      	beq.n	80027b6 <drill_adc_poll+0x3a>
 800286a:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 800286e:	689a      	ldr	r2, [r3, #8]
 8002870:	0752      	lsls	r2, r2, #29
 8002872:	d4a0      	bmi.n	80027b6 <drill_adc_poll+0x3a>
 8002874:	6c1a      	ldr	r2, [r3, #64]	@ 0x40
 8002876:	f5b2 5f80 	cmp.w	r2, #4096	@ 0x1000
 800287a:	d301      	bcc.n	8002880 <drill_adc_poll+0x104>
 800287c:	2004      	movs	r0, #4
 800287e:	e78b      	b.n	8002798 <drill_adc_poll+0x1c>
 8002880:	6aa3      	ldr	r3, [r4, #40]	@ 0x28
 8002882:	f824 2013 	strh.w	r2, [r4, r3, lsl #1]
 8002886:	3302      	adds	r3, #2
 8002888:	f04f 42a0 	mov.w	r2, #1342177280	@ 0x50000000
 800288c:	f844 5023 	str.w	r5, [r4, r3, lsl #2]
 8002890:	230e      	movs	r3, #14
 8002892:	6013      	str	r3, [r2, #0]
 8002894:	f3bf 8f4f 	dsb	sy
 8002898:	6aa3      	ldr	r3, [r4, #40]	@ 0x28
 800289a:	1c59      	adds	r1, r3, #1
 800289c:	2904      	cmp	r1, #4
 800289e:	62a1      	str	r1, [r4, #40]	@ 0x28
 80028a0:	d108      	bne.n	80028b4 <drill_adc_poll+0x138>
 80028a2:	2303      	movs	r3, #3
 80028a4:	62a3      	str	r3, [r4, #40]	@ 0x28
 80028a6:	6ba3      	ldr	r3, [r4, #56]	@ 0x38
 80028a8:	61a5      	str	r5, [r4, #24]
 80028aa:	3301      	adds	r3, #1
 80028ac:	63a3      	str	r3, [r4, #56]	@ 0x38
 80028ae:	61e3      	str	r3, [r4, #28]
 80028b0:	2307      	movs	r3, #7
 80028b2:	e7c5      	b.n	8002840 <drill_adc_poll+0xc4>
 80028b4:	3302      	adds	r3, #2
 80028b6:	019b      	lsls	r3, r3, #6
 80028b8:	6313      	str	r3, [r2, #48]	@ 0x30
 80028ba:	6893      	ldr	r3, [r2, #8]
 80028bc:	f043 0304 	orr.w	r3, r3, #4
 80028c0:	6093      	str	r3, [r2, #8]
 80028c2:	6325      	str	r5, [r4, #48]	@ 0x30
 80028c4:	f3bf 8f4f 	dsb	sy
 80028c8:	e793      	b.n	80027f2 <drill_adc_poll+0x76>
 80028ca:	bf00      	nop
 80028cc:	20000184 	.word	0x20000184

080028d0 <drill_adc_capture_start>:
 80028d0:	b538      	push	{r3, r4, r5, lr}
 80028d2:	4c16      	ldr	r4, [pc, #88]	@ (800292c <drill_adc_capture_start+0x5c>)
 80028d4:	f894 3025 	ldrb.w	r3, [r4, #37]	@ 0x25
 80028d8:	2b05      	cmp	r3, #5
 80028da:	4605      	mov	r5, r0
 80028dc:	d001      	beq.n	80028e2 <drill_adc_capture_start+0x12>
 80028de:	2000      	movs	r0, #0
 80028e0:	bd38      	pop	{r3, r4, r5, pc}
 80028e2:	f7ff ff4b 	bl	800277c <drill_adc_poll>
 80028e6:	f894 3025 	ldrb.w	r3, [r4, #37]	@ 0x25
 80028ea:	2b05      	cmp	r3, #5
 80028ec:	d1f7      	bne.n	80028de <drill_adc_capture_start+0xe>
 80028ee:	f7fe ffd1 	bl	8001894 <drill_spi_active>
 80028f2:	4601      	mov	r1, r0
 80028f4:	2800      	cmp	r0, #0
 80028f6:	d1f2      	bne.n	80028de <drill_adc_capture_start+0xe>
 80028f8:	62a0      	str	r0, [r4, #40]	@ 0x28
 80028fa:	2224      	movs	r2, #36	@ 0x24
 80028fc:	4620      	mov	r0, r4
 80028fe:	f7fd fdee 	bl	80004de <memset>
 8002902:	f04f 43a0 	mov.w	r3, #1342177280	@ 0x50000000
 8002906:	2240      	movs	r2, #64	@ 0x40
 8002908:	631a      	str	r2, [r3, #48]	@ 0x30
 800290a:	220e      	movs	r2, #14
 800290c:	601a      	str	r2, [r3, #0]
 800290e:	f3bf 8f4f 	dsb	sy
 8002912:	689a      	ldr	r2, [r3, #8]
 8002914:	f042 0204 	orr.w	r2, r2, #4
 8002918:	609a      	str	r2, [r3, #8]
 800291a:	2306      	movs	r3, #6
 800291c:	6325      	str	r5, [r4, #48]	@ 0x30
 800291e:	f884 3025 	strb.w	r3, [r4, #37]	@ 0x25
 8002922:	f3bf 8f4f 	dsb	sy
 8002926:	2001      	movs	r0, #1
 8002928:	e7da      	b.n	80028e0 <drill_adc_capture_start+0x10>
 800292a:	bf00      	nop
 800292c:	20000184 	.word	0x20000184

08002930 <drill_adc_take>:
 8002930:	b570      	push	{r4, r5, r6, lr}
 8002932:	4604      	mov	r4, r0
 8002934:	460d      	mov	r5, r1
 8002936:	b120      	cbz	r0, 8002942 <drill_adc_take+0x12>
 8002938:	4e13      	ldr	r6, [pc, #76]	@ (8002988 <drill_adc_take+0x58>)
 800293a:	f896 3025 	ldrb.w	r3, [r6, #37]	@ 0x25
 800293e:	2b07      	cmp	r3, #7
 8002940:	d001      	beq.n	8002946 <drill_adc_take+0x16>
 8002942:	2000      	movs	r0, #0
 8002944:	bd70      	pop	{r4, r5, r6, pc}
 8002946:	4608      	mov	r0, r1
 8002948:	f7ff ff18 	bl	800277c <drill_adc_poll>
 800294c:	f896 3025 	ldrb.w	r3, [r6, #37]	@ 0x25
 8002950:	2b07      	cmp	r3, #7
 8002952:	d1f6      	bne.n	8002942 <drill_adc_take+0x12>
 8002954:	69b3      	ldr	r3, [r6, #24]
 8002956:	1aed      	subs	r5, r5, r3
 8002958:	f5b5 7f7a 	cmp.w	r5, #1000	@ 0x3e8
 800295c:	d903      	bls.n	8002966 <drill_adc_take+0x36>
 800295e:	2002      	movs	r0, #2
 8002960:	f7ff fd9a 	bl	8002498 <da_fail>
 8002964:	e7ed      	b.n	8002942 <drill_adc_take+0x12>
 8002966:	4635      	mov	r5, r6
 8002968:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 800296a:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 800296c:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 800296e:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 8002970:	682b      	ldr	r3, [r5, #0]
 8002972:	6023      	str	r3, [r4, #0]
 8002974:	2224      	movs	r2, #36	@ 0x24
 8002976:	2100      	movs	r1, #0
 8002978:	4630      	mov	r0, r6
 800297a:	f7fd fdb0 	bl	80004de <memset>
 800297e:	2305      	movs	r3, #5
 8002980:	f886 3025 	strb.w	r3, [r6, #37]	@ 0x25
 8002984:	2001      	movs	r0, #1
 8002986:	e7dd      	b.n	8002944 <drill_adc_take+0x14>
 8002988:	20000184 	.word	0x20000184

0800298c <drill_adc_busy>:
 800298c:	4b0c      	ldr	r3, [pc, #48]	@ (80029c0 <drill_adc_busy+0x34>)
 800298e:	f893 2025 	ldrb.w	r2, [r3, #37]	@ 0x25
 8002992:	2a01      	cmp	r2, #1
 8002994:	d101      	bne.n	800299a <drill_adc_busy+0xe>
 8002996:	2001      	movs	r0, #1
 8002998:	4770      	bx	lr
 800299a:	f893 2025 	ldrb.w	r2, [r3, #37]	@ 0x25
 800299e:	2a02      	cmp	r2, #2
 80029a0:	d0f9      	beq.n	8002996 <drill_adc_busy+0xa>
 80029a2:	f893 2025 	ldrb.w	r2, [r3, #37]	@ 0x25
 80029a6:	2a03      	cmp	r2, #3
 80029a8:	d0f5      	beq.n	8002996 <drill_adc_busy+0xa>
 80029aa:	f893 2025 	ldrb.w	r2, [r3, #37]	@ 0x25
 80029ae:	2a04      	cmp	r2, #4
 80029b0:	d0f1      	beq.n	8002996 <drill_adc_busy+0xa>
 80029b2:	f893 0025 	ldrb.w	r0, [r3, #37]	@ 0x25
 80029b6:	1f83      	subs	r3, r0, #6
 80029b8:	4258      	negs	r0, r3
 80029ba:	4158      	adcs	r0, r3
 80029bc:	4770      	bx	lr
 80029be:	bf00      	nop
 80029c0:	20000184 	.word	0x20000184

080029c4 <drill_adc_abort>:
 80029c4:	4b05      	ldr	r3, [pc, #20]	@ (80029dc <drill_adc_abort+0x18>)
 80029c6:	f893 2025 	ldrb.w	r2, [r3, #37]	@ 0x25
 80029ca:	b12a      	cbz	r2, 80029d8 <drill_adc_abort+0x14>
 80029cc:	f893 3025 	ldrb.w	r3, [r3, #37]	@ 0x25
 80029d0:	2b08      	cmp	r3, #8
 80029d2:	d001      	beq.n	80029d8 <drill_adc_abort+0x14>
 80029d4:	2002      	movs	r0, #2
 80029d6:	e55f      	b.n	8002498 <da_fail>
 80029d8:	4770      	bx	lr
 80029da:	bf00      	nop
 80029dc:	20000184 	.word	0x20000184

080029e0 <dc_valid>:
 80029e0:	b908      	cbnz	r0, 80029e6 <dc_valid+0x6>
 80029e2:	2000      	movs	r0, #0
 80029e4:	4770      	bx	lr
 80029e6:	6843      	ldr	r3, [r0, #4]
 80029e8:	2b00      	cmp	r3, #0
 80029ea:	d0fa      	beq.n	80029e2 <dc_valid+0x2>
 80029ec:	6883      	ldr	r3, [r0, #8]
 80029ee:	2b00      	cmp	r3, #0
 80029f0:	d0f7      	beq.n	80029e2 <dc_valid+0x2>
 80029f2:	68c3      	ldr	r3, [r0, #12]
 80029f4:	2b00      	cmp	r3, #0
 80029f6:	d0f4      	beq.n	80029e2 <dc_valid+0x2>
 80029f8:	6903      	ldr	r3, [r0, #16]
 80029fa:	2b00      	cmp	r3, #0
 80029fc:	d0f1      	beq.n	80029e2 <dc_valid+0x2>
 80029fe:	6943      	ldr	r3, [r0, #20]
 8002a00:	2b00      	cmp	r3, #0
 8002a02:	d0ee      	beq.n	80029e2 <dc_valid+0x2>
 8002a04:	6983      	ldr	r3, [r0, #24]
 8002a06:	2b00      	cmp	r3, #0
 8002a08:	d0eb      	beq.n	80029e2 <dc_valid+0x2>
 8002a0a:	69c0      	ldr	r0, [r0, #28]
 8002a0c:	3800      	subs	r0, #0
 8002a0e:	bf18      	it	ne
 8002a10:	2001      	movne	r0, #1
 8002a12:	4770      	bx	lr

08002a14 <dc_fail>:
 8002a14:	b538      	push	{r3, r4, r5, lr}
 8002a16:	4604      	mov	r4, r0
 8002a18:	4615      	mov	r5, r2
 8002a1a:	b119      	cbz	r1, 8002a24 <dc_fail+0x10>
 8002a1c:	69cb      	ldr	r3, [r1, #28]
 8002a1e:	b10b      	cbz	r3, 8002a24 <dc_fail+0x10>
 8002a20:	6808      	ldr	r0, [r1, #0]
 8002a22:	4798      	blx	r3
 8002a24:	b114      	cbz	r4, 8002a2c <dc_fail+0x18>
 8002a26:	2306      	movs	r3, #6
 8002a28:	7023      	strb	r3, [r4, #0]
 8002a2a:	7065      	strb	r5, [r4, #1]
 8002a2c:	bd38      	pop	{r3, r4, r5, pc}

08002a2e <dc_begin>:
 8002a2e:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8002a30:	4617      	mov	r7, r2
 8002a32:	4605      	mov	r5, r0
 8002a34:	460e      	mov	r6, r1
 8002a36:	461a      	mov	r2, r3
 8002a38:	b180      	cbz	r0, 8002a5c <dc_begin+0x2e>
 8002a3a:	4608      	mov	r0, r1
 8002a3c:	f7ff ffd0 	bl	80029e0 <dc_valid>
 8002a40:	4604      	mov	r4, r0
 8002a42:	b160      	cbz	r0, 8002a5e <dc_begin+0x30>
 8002a44:	b352      	cbz	r2, 8002a9c <dc_begin+0x6e>
 8002a46:	782b      	ldrb	r3, [r5, #0]
 8002a48:	b943      	cbnz	r3, 8002a5c <dc_begin+0x2e>
 8002a4a:	e9d1 0300 	ldrd	r0, r3, [r1]
 8002a4e:	4798      	blx	r3
 8002a50:	b938      	cbnz	r0, 8002a62 <dc_begin+0x34>
 8002a52:	2202      	movs	r2, #2
 8002a54:	4631      	mov	r1, r6
 8002a56:	4628      	mov	r0, r5
 8002a58:	f7ff ffdc 	bl	8002a14 <dc_fail>
 8002a5c:	2400      	movs	r4, #0
 8002a5e:	4620      	mov	r0, r4
 8002a60:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8002a62:	69b3      	ldr	r3, [r6, #24]
 8002a64:	6830      	ldr	r0, [r6, #0]
 8002a66:	4798      	blx	r3
 8002a68:	4604      	mov	r4, r0
 8002a6a:	2800      	cmp	r0, #0
 8002a6c:	d1f1      	bne.n	8002a52 <dc_begin+0x24>
 8002a6e:	4601      	mov	r1, r0
 8002a70:	2214      	movs	r2, #20
 8002a72:	4628      	mov	r0, r5
 8002a74:	f7fd fd33 	bl	80004de <memset>
 8002a78:	2301      	movs	r3, #1
 8002a7a:	702b      	strb	r3, [r5, #0]
 8002a7c:	4621      	mov	r1, r4
 8002a7e:	e9c5 7701 	strd	r7, r7, [r5, #4]
 8002a82:	68f3      	ldr	r3, [r6, #12]
 8002a84:	6830      	ldr	r0, [r6, #0]
 8002a86:	60ef      	str	r7, [r5, #12]
 8002a88:	4798      	blx	r3
 8002a8a:	4604      	mov	r4, r0
 8002a8c:	2800      	cmp	r0, #0
 8002a8e:	d1e6      	bne.n	8002a5e <dc_begin+0x30>
 8002a90:	2204      	movs	r2, #4
 8002a92:	4631      	mov	r1, r6
 8002a94:	4628      	mov	r0, r5
 8002a96:	f7ff ffbd 	bl	8002a14 <dc_fail>
 8002a9a:	e7e0      	b.n	8002a5e <dc_begin+0x30>
 8002a9c:	4614      	mov	r4, r2
 8002a9e:	e7de      	b.n	8002a5e <dc_begin+0x30>

08002aa0 <dc_poll>:
 8002aa0:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8002aa2:	4604      	mov	r4, r0
 8002aa4:	460d      	mov	r5, r1
 8002aa6:	4616      	mov	r6, r2
 8002aa8:	2800      	cmp	r0, #0
 8002aaa:	d078      	beq.n	8002b9e <dc_poll+0xfe>
 8002aac:	7803      	ldrb	r3, [r0, #0]
 8002aae:	2b00      	cmp	r3, #0
 8002ab0:	d075      	beq.n	8002b9e <dc_poll+0xfe>
 8002ab2:	2b06      	cmp	r3, #6
 8002ab4:	d073      	beq.n	8002b9e <dc_poll+0xfe>
 8002ab6:	4608      	mov	r0, r1
 8002ab8:	f7ff ff92 	bl	80029e0 <dc_valid>
 8002abc:	b928      	cbnz	r0, 8002aca <dc_poll+0x2a>
 8002abe:	2201      	movs	r2, #1
 8002ac0:	4620      	mov	r0, r4
 8002ac2:	b003      	add	sp, #12
 8002ac4:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
 8002ac8:	e7a4      	b.n	8002a14 <dc_fail>
 8002aca:	6863      	ldr	r3, [r4, #4]
 8002acc:	1ad3      	subs	r3, r2, r3
 8002ace:	d501      	bpl.n	8002ad4 <dc_poll+0x34>
 8002ad0:	2203      	movs	r2, #3
 8002ad2:	e009      	b.n	8002ae8 <dc_poll+0x48>
 8002ad4:	e9d1 0300 	ldrd	r0, r3, [r1]
 8002ad8:	6062      	str	r2, [r4, #4]
 8002ada:	4798      	blx	r3
 8002adc:	b118      	cbz	r0, 8002ae6 <dc_poll+0x46>
 8002ade:	69ab      	ldr	r3, [r5, #24]
 8002ae0:	6828      	ldr	r0, [r5, #0]
 8002ae2:	4798      	blx	r3
 8002ae4:	b110      	cbz	r0, 8002aec <dc_poll+0x4c>
 8002ae6:	2202      	movs	r2, #2
 8002ae8:	4629      	mov	r1, r5
 8002aea:	e7e9      	b.n	8002ac0 <dc_poll+0x20>
 8002aec:	7823      	ldrb	r3, [r4, #0]
 8002aee:	2b05      	cmp	r3, #5
 8002af0:	d106      	bne.n	8002b00 <dc_poll+0x60>
 8002af2:	68ab      	ldr	r3, [r5, #8]
 8002af4:	6828      	ldr	r0, [r5, #0]
 8002af6:	4798      	blx	r3
 8002af8:	2800      	cmp	r0, #0
 8002afa:	d150      	bne.n	8002b9e <dc_poll+0xfe>
 8002afc:	2205      	movs	r2, #5
 8002afe:	e7f3      	b.n	8002ae8 <dc_poll+0x48>
 8002b00:	68a2      	ldr	r2, [r4, #8]
 8002b02:	f644 6120 	movw	r1, #20000	@ 0x4e20
 8002b06:	1ab2      	subs	r2, r6, r2
 8002b08:	428a      	cmp	r2, r1
 8002b0a:	d8e1      	bhi.n	8002ad0 <dc_poll+0x30>
 8002b0c:	2b01      	cmp	r3, #1
 8002b0e:	d10f      	bne.n	8002b30 <dc_poll+0x90>
 8002b10:	68e3      	ldr	r3, [r4, #12]
 8002b12:	1af3      	subs	r3, r6, r3
 8002b14:	f5b3 7f7a 	cmp.w	r3, #1000	@ 0x3e8
 8002b18:	d341      	bcc.n	8002b9e <dc_poll+0xfe>
 8002b1a:	68eb      	ldr	r3, [r5, #12]
 8002b1c:	6828      	ldr	r0, [r5, #0]
 8002b1e:	2101      	movs	r1, #1
 8002b20:	4798      	blx	r3
 8002b22:	b908      	cbnz	r0, 8002b28 <dc_poll+0x88>
 8002b24:	2204      	movs	r2, #4
 8002b26:	e7df      	b.n	8002ae8 <dc_poll+0x48>
 8002b28:	60e6      	str	r6, [r4, #12]
 8002b2a:	2302      	movs	r3, #2
 8002b2c:	7023      	strb	r3, [r4, #0]
 8002b2e:	e036      	b.n	8002b9e <dc_poll+0xfe>
 8002b30:	2b02      	cmp	r3, #2
 8002b32:	d107      	bne.n	8002b44 <dc_poll+0xa4>
 8002b34:	68e3      	ldr	r3, [r4, #12]
 8002b36:	1af3      	subs	r3, r6, r3
 8002b38:	f5b3 6ffa 	cmp.w	r3, #2000	@ 0x7d0
 8002b3c:	d32f      	bcc.n	8002b9e <dc_poll+0xfe>
 8002b3e:	2303      	movs	r3, #3
 8002b40:	7023      	strb	r3, [r4, #0]
 8002b42:	60e6      	str	r6, [r4, #12]
 8002b44:	68ab      	ldr	r3, [r5, #8]
 8002b46:	6828      	ldr	r0, [r5, #0]
 8002b48:	4798      	blx	r3
 8002b4a:	2800      	cmp	r0, #0
 8002b4c:	d0d6      	beq.n	8002afc <dc_poll+0x5c>
 8002b4e:	7823      	ldrb	r3, [r4, #0]
 8002b50:	2b03      	cmp	r3, #3
 8002b52:	d12d      	bne.n	8002bb0 <dc_poll+0x110>
 8002b54:	68e3      	ldr	r3, [r4, #12]
 8002b56:	1af3      	subs	r3, r6, r3
 8002b58:	2b01      	cmp	r3, #1
 8002b5a:	d920      	bls.n	8002b9e <dc_poll+0xfe>
 8002b5c:	7c21      	ldrb	r1, [r4, #16]
 8002b5e:	2902      	cmp	r1, #2
 8002b60:	d921      	bls.n	8002ba6 <dc_poll+0x106>
 8002b62:	2912      	cmp	r1, #18
 8002b64:	d81d      	bhi.n	8002ba2 <dc_poll+0x102>
 8002b66:	1ec8      	subs	r0, r1, #3
 8002b68:	0842      	lsrs	r2, r0, #1
 8002b6a:	4b3b      	ldr	r3, [pc, #236]	@ (8002c58 <dc_poll+0x1b8>)
 8002b6c:	f010 0001 	ands.w	r0, r0, #1
 8002b70:	f813 1012 	ldrb.w	r1, [r3, r2, lsl #1]
 8002b74:	d117      	bne.n	8002ba6 <dc_poll+0x106>
 8002b76:	eb03 0342 	add.w	r3, r3, r2, lsl #1
 8002b7a:	785a      	ldrb	r2, [r3, #1]
 8002b7c:	f10d 0306 	add.w	r3, sp, #6
 8002b80:	f000 f90f 	bl	8002da2 <drv8316_frame>
 8002b84:	b130      	cbz	r0, 8002b94 <dc_poll+0xf4>
 8002b86:	692b      	ldr	r3, [r5, #16]
 8002b88:	f8bd 1006 	ldrh.w	r1, [sp, #6]
 8002b8c:	6828      	ldr	r0, [r5, #0]
 8002b8e:	4632      	mov	r2, r6
 8002b90:	4798      	blx	r3
 8002b92:	b950      	cbnz	r0, 8002baa <dc_poll+0x10a>
 8002b94:	2204      	movs	r2, #4
 8002b96:	4629      	mov	r1, r5
 8002b98:	4620      	mov	r0, r4
 8002b9a:	f7ff ff3b 	bl	8002a14 <dc_fail>
 8002b9e:	b003      	add	sp, #12
 8002ba0:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8002ba2:	3913      	subs	r1, #19
 8002ba4:	b2c9      	uxtb	r1, r1
 8002ba6:	2200      	movs	r2, #0
 8002ba8:	e7e8      	b.n	8002b7c <dc_poll+0xdc>
 8002baa:	60e6      	str	r6, [r4, #12]
 8002bac:	2304      	movs	r3, #4
 8002bae:	e7bd      	b.n	8002b2c <dc_poll+0x8c>
 8002bb0:	2b04      	cmp	r3, #4
 8002bb2:	d1f4      	bne.n	8002b9e <dc_poll+0xfe>
 8002bb4:	68e3      	ldr	r3, [r4, #12]
 8002bb6:	1af3      	subs	r3, r6, r3
 8002bb8:	2bfa      	cmp	r3, #250	@ 0xfa
 8002bba:	d889      	bhi.n	8002ad0 <dc_poll+0x30>
 8002bbc:	696b      	ldr	r3, [r5, #20]
 8002bbe:	6828      	ldr	r0, [r5, #0]
 8002bc0:	4632      	mov	r2, r6
 8002bc2:	f10d 0106 	add.w	r1, sp, #6
 8002bc6:	4798      	blx	r3
 8002bc8:	2800      	cmp	r0, #0
 8002bca:	d0e8      	beq.n	8002b9e <dc_poll+0xfe>
 8002bcc:	f8bd 2006 	ldrh.w	r2, [sp, #6]
 8002bd0:	0a10      	lsrs	r0, r2, #8
 8002bd2:	f010 0ff7 	tst.w	r0, #247	@ 0xf7
 8002bd6:	b2d2      	uxtb	r2, r2
 8002bd8:	7460      	strb	r0, [r4, #17]
 8002bda:	74a2      	strb	r2, [r4, #18]
 8002bdc:	d102      	bne.n	8002be4 <dc_poll+0x144>
 8002bde:	7ce3      	ldrb	r3, [r4, #19]
 8002be0:	b113      	cbz	r3, 8002be8 <dc_poll+0x148>
 8002be2:	b908      	cbnz	r0, 8002be8 <dc_poll+0x148>
 8002be4:	2205      	movs	r2, #5
 8002be6:	e7d6      	b.n	8002b96 <dc_poll+0xf6>
 8002be8:	7c23      	ldrb	r3, [r4, #16]
 8002bea:	1ed9      	subs	r1, r3, #3
 8002bec:	b2cf      	uxtb	r7, r1
 8002bee:	2f0f      	cmp	r7, #15
 8002bf0:	d918      	bls.n	8002c24 <dc_poll+0x184>
 8002bf2:	2b02      	cmp	r3, #2
 8002bf4:	bf94      	ite	ls
 8002bf6:	4619      	movls	r1, r3
 8002bf8:	f1a3 0113 	subhi.w	r1, r3, #19
 8002bfc:	2900      	cmp	r1, #0
 8002bfe:	bf14      	ite	ne
 8002c00:	20ff      	movne	r0, #255	@ 0xff
 8002c02:	20f7      	moveq	r0, #247	@ 0xf7
 8002c04:	4202      	tst	r2, r0
 8002c06:	d1ed      	bne.n	8002be4 <dc_poll+0x144>
 8002c08:	2b12      	cmp	r3, #18
 8002c0a:	d902      	bls.n	8002c12 <dc_poll+0x172>
 8002c0c:	b909      	cbnz	r1, 8002c12 <dc_poll+0x172>
 8002c0e:	0712      	lsls	r2, r2, #28
 8002c10:	d5e8      	bpl.n	8002be4 <dc_poll+0x144>
 8002c12:	3301      	adds	r3, #1
 8002c14:	b2db      	uxtb	r3, r3
 8002c16:	2b16      	cmp	r3, #22
 8002c18:	7423      	strb	r3, [r4, #16]
 8002c1a:	60e6      	str	r6, [r4, #12]
 8002c1c:	bf14      	ite	ne
 8002c1e:	2303      	movne	r3, #3
 8002c20:	2305      	moveq	r3, #5
 8002c22:	e783      	b.n	8002b2c <dc_poll+0x8c>
 8002c24:	07cf      	lsls	r7, r1, #31
 8002c26:	d5f4      	bpl.n	8002c12 <dc_poll+0x172>
 8002c28:	4f0b      	ldr	r7, [pc, #44]	@ (8002c58 <dc_poll+0x1b8>)
 8002c2a:	ea4f 0c61 	mov.w	ip, r1, asr #1
 8002c2e:	f021 0101 	bic.w	r1, r1, #1
 8002c32:	4439      	add	r1, r7
 8002c34:	f1bc 0f01 	cmp.w	ip, #1
 8002c38:	7849      	ldrb	r1, [r1, #1]
 8002c3a:	d105      	bne.n	8002c48 <dc_poll+0x1a8>
 8002c3c:	f001 01fe 	and.w	r1, r1, #254	@ 0xfe
 8002c40:	428a      	cmp	r2, r1
 8002c42:	d004      	beq.n	8002c4e <dc_poll+0x1ae>
 8002c44:	2206      	movs	r2, #6
 8002c46:	e7a6      	b.n	8002b96 <dc_poll+0xf6>
 8002c48:	428a      	cmp	r2, r1
 8002c4a:	d0e2      	beq.n	8002c12 <dc_poll+0x172>
 8002c4c:	e7fa      	b.n	8002c44 <dc_poll+0x1a4>
 8002c4e:	2800      	cmp	r0, #0
 8002c50:	d0c8      	beq.n	8002be4 <dc_poll+0x144>
 8002c52:	f884 c013 	strb.w	ip, [r4, #19]
 8002c56:	e7dc      	b.n	8002c12 <dc_poll+0x172>
 8002c58:	080040f8 	.word	0x080040f8

08002c5c <dc_bind_fault>:
 8002c5c:	f04f 4390 	mov.w	r3, #1207959552	@ 0x48000000
 8002c60:	681a      	ldr	r2, [r3, #0]
 8002c62:	f412 5f40 	tst.w	r2, #12288	@ 0x3000
 8002c66:	bf06      	itte	eq
 8002c68:	6918      	ldreq	r0, [r3, #16]
 8002c6a:	f3c0 1080 	ubfxeq	r0, r0, #6, #1
 8002c6e:	2000      	movne	r0, #0
 8002c70:	4770      	bx	lr

08002c72 <dc_bind_off>:
 8002c72:	b508      	push	{r3, lr}
 8002c74:	f7fe fcca 	bl	800160c <drill_spi_available>
 8002c78:	b908      	cbnz	r0, 8002c7e <dc_bind_off+0xc>
 8002c7a:	2000      	movs	r0, #0
 8002c7c:	bd08      	pop	{r3, pc}
 8002c7e:	4b08      	ldr	r3, [pc, #32]	@ (8002ca0 <dc_bind_off+0x2e>)
 8002c80:	781b      	ldrb	r3, [r3, #0]
 8002c82:	2b01      	cmp	r3, #1
 8002c84:	d801      	bhi.n	8002c8a <dc_bind_off+0x18>
 8002c86:	2001      	movs	r0, #1
 8002c88:	e7f8      	b.n	8002c7c <dc_bind_off+0xa>
 8002c8a:	2b06      	cmp	r3, #6
 8002c8c:	d0fb      	beq.n	8002c86 <dc_bind_off+0x14>
 8002c8e:	4b05      	ldr	r3, [pc, #20]	@ (8002ca4 <dc_bind_off+0x32>)
 8002c90:	695a      	ldr	r2, [r3, #20]
 8002c92:	0792      	lsls	r2, r2, #30
 8002c94:	d5f1      	bpl.n	8002c7a <dc_bind_off+0x8>
 8002c96:	6918      	ldr	r0, [r3, #16]
 8002c98:	f3c0 0040 	ubfx	r0, r0, #1, #1
 8002c9c:	e7ee      	b.n	8002c7c <dc_bind_off+0xa>
 8002c9e:	bf00      	nop
 8002ca0:	200001c0 	.word	0x200001c0
 8002ca4:	48001400 	.word	0x48001400

08002ca8 <dc_bind_stop>:
 8002ca8:	f7fe be00 	b.w	80018ac <drill_spi_abort>

08002cac <dc_bind_failed>:
 8002cac:	f7fe bdea 	b.w	8001884 <drill_spi_failed>

08002cb0 <dc_bind_receive>:
 8002cb0:	4608      	mov	r0, r1
 8002cb2:	4611      	mov	r1, r2
 8002cb4:	f7fe bdc4 	b.w	8001840 <drill_spi_get>

08002cb8 <dc_bind_submit>:
 8002cb8:	4608      	mov	r0, r1
 8002cba:	4611      	mov	r1, r2
 8002cbc:	f7fe bd20 	b.w	8001700 <drill_spi_start>

08002cc0 <dc_bind_awake>:
 8002cc0:	b510      	push	{r4, lr}
 8002cc2:	460c      	mov	r4, r1
 8002cc4:	f7fe fca2 	bl	800160c <drill_spi_available>
 8002cc8:	b198      	cbz	r0, 8002cf2 <dc_bind_awake+0x32>
 8002cca:	2c00      	cmp	r4, #0
 8002ccc:	4a0a      	ldr	r2, [pc, #40]	@ (8002cf8 <dc_bind_awake+0x38>)
 8002cce:	bf0c      	ite	eq
 8002cd0:	f44f 3300 	moveq.w	r3, #131072	@ 0x20000
 8002cd4:	2302      	movne	r3, #2
 8002cd6:	6193      	str	r3, [r2, #24]
 8002cd8:	f3bf 8f4f 	dsb	sy
 8002cdc:	6953      	ldr	r3, [r2, #20]
 8002cde:	f3c3 0340 	ubfx	r3, r3, #1, #1
 8002ce2:	42a3      	cmp	r3, r4
 8002ce4:	d106      	bne.n	8002cf4 <dc_bind_awake+0x34>
 8002ce6:	6910      	ldr	r0, [r2, #16]
 8002ce8:	f3c0 0040 	ubfx	r0, r0, #1, #1
 8002cec:	1ac3      	subs	r3, r0, r3
 8002cee:	4258      	negs	r0, r3
 8002cf0:	4158      	adcs	r0, r3
 8002cf2:	bd10      	pop	{r4, pc}
 8002cf4:	2000      	movs	r0, #0
 8002cf6:	e7fc      	b.n	8002cf2 <dc_bind_awake+0x32>
 8002cf8:	48001400 	.word	0x48001400

08002cfc <drill_config_bench_begin>:
 8002cfc:	b570      	push	{r4, r5, r6, lr}
 8002cfe:	4605      	mov	r5, r0
 8002d00:	b1c9      	cbz	r1, 8002d36 <drill_config_bench_begin+0x3a>
 8002d02:	4c0e      	ldr	r4, [pc, #56]	@ (8002d3c <drill_config_bench_begin+0x40>)
 8002d04:	7823      	ldrb	r3, [r4, #0]
 8002d06:	b9b3      	cbnz	r3, 8002d36 <drill_config_bench_begin+0x3a>
 8002d08:	f7fe fc80 	bl	800160c <drill_spi_available>
 8002d0c:	b198      	cbz	r0, 8002d36 <drill_config_bench_begin+0x3a>
 8002d0e:	f04f 4390 	mov.w	r3, #1207959552	@ 0x48000000
 8002d12:	6819      	ldr	r1, [r3, #0]
 8002d14:	f421 5140 	bic.w	r1, r1, #12288	@ 0x3000
 8002d18:	6019      	str	r1, [r3, #0]
 8002d1a:	68d9      	ldr	r1, [r3, #12]
 8002d1c:	f421 5140 	bic.w	r1, r1, #12288	@ 0x3000
 8002d20:	60d9      	str	r1, [r3, #12]
 8002d22:	f3bf 8f4f 	dsb	sy
 8002d26:	4906      	ldr	r1, [pc, #24]	@ (8002d40 <drill_config_bench_begin+0x44>)
 8002d28:	462a      	mov	r2, r5
 8002d2a:	4620      	mov	r0, r4
 8002d2c:	2301      	movs	r3, #1
 8002d2e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 8002d32:	f7ff be7c 	b.w	8002a2e <dc_begin>
 8002d36:	2000      	movs	r0, #0
 8002d38:	bd70      	pop	{r4, r5, r6, pc}
 8002d3a:	bf00      	nop
 8002d3c:	200001c0 	.word	0x200001c0
 8002d40:	08004108 	.word	0x08004108

08002d44 <drill_config_service>:
 8002d44:	4602      	mov	r2, r0
 8002d46:	4902      	ldr	r1, [pc, #8]	@ (8002d50 <drill_config_service+0xc>)
 8002d48:	4802      	ldr	r0, [pc, #8]	@ (8002d54 <drill_config_service+0x10>)
 8002d4a:	f7ff bea9 	b.w	8002aa0 <dc_poll>
 8002d4e:	bf00      	nop
 8002d50:	08004108 	.word	0x08004108
 8002d54:	200001c0 	.word	0x200001c0

08002d58 <valid>:
 8002d58:	b908      	cbnz	r0, 8002d5e <valid+0x6>
 8002d5a:	2000      	movs	r0, #0
 8002d5c:	4770      	bx	lr
 8002d5e:	6843      	ldr	r3, [r0, #4]
 8002d60:	2b00      	cmp	r3, #0
 8002d62:	d0fa      	beq.n	8002d5a <valid+0x2>
 8002d64:	6883      	ldr	r3, [r0, #8]
 8002d66:	2b00      	cmp	r3, #0
 8002d68:	d0f7      	beq.n	8002d5a <valid+0x2>
 8002d6a:	68c3      	ldr	r3, [r0, #12]
 8002d6c:	2b00      	cmp	r3, #0
 8002d6e:	d0f4      	beq.n	8002d5a <valid+0x2>
 8002d70:	6900      	ldr	r0, [r0, #16]
 8002d72:	3800      	subs	r0, #0
 8002d74:	bf18      	it	ne
 8002d76:	2001      	movne	r0, #1
 8002d78:	4770      	bx	lr

08002d7a <stop>:
 8002d7a:	b570      	push	{r4, r5, r6, lr}
 8002d7c:	4604      	mov	r4, r0
 8002d7e:	460d      	mov	r5, r1
 8002d80:	4616      	mov	r6, r2
 8002d82:	b148      	cbz	r0, 8002d98 <stop+0x1e>
 8002d84:	6883      	ldr	r3, [r0, #8]
 8002d86:	b113      	cbz	r3, 8002d8e <stop+0x14>
 8002d88:	6800      	ldr	r0, [r0, #0]
 8002d8a:	2101      	movs	r1, #1
 8002d8c:	4798      	blx	r3
 8002d8e:	68e3      	ldr	r3, [r4, #12]
 8002d90:	b113      	cbz	r3, 8002d98 <stop+0x1e>
 8002d92:	6820      	ldr	r0, [r4, #0]
 8002d94:	2100      	movs	r1, #0
 8002d96:	4798      	blx	r3
 8002d98:	b10d      	cbz	r5, 8002d9e <stop+0x24>
 8002d9a:	2300      	movs	r3, #0
 8002d9c:	716b      	strb	r3, [r5, #5]
 8002d9e:	4630      	mov	r0, r6
 8002da0:	bd70      	pop	{r4, r5, r6, pc}

08002da2 <drv8316_frame>:
 8002da2:	b510      	push	{r4, lr}
 8002da4:	b90b      	cbnz	r3, 8002daa <drv8316_frame+0x8>
 8002da6:	2000      	movs	r0, #0
 8002da8:	bd10      	pop	{r4, pc}
 8002daa:	293f      	cmp	r1, #63	@ 0x3f
 8002dac:	d8fb      	bhi.n	8002da6 <drv8316_frame+0x4>
 8002dae:	ea42 2241 	orr.w	r2, r2, r1, lsl #9
 8002db2:	ea42 32c0 	orr.w	r2, r2, r0, lsl #15
 8002db6:	2100      	movs	r1, #0
 8002db8:	b292      	uxth	r2, r2
 8002dba:	4608      	mov	r0, r1
 8002dbc:	fa42 f400 	asr.w	r4, r2, r0
 8002dc0:	3001      	adds	r0, #1
 8002dc2:	f004 0401 	and.w	r4, r4, #1
 8002dc6:	2810      	cmp	r0, #16
 8002dc8:	ea81 0104 	eor.w	r1, r1, r4
 8002dcc:	d1f6      	bne.n	8002dbc <drv8316_frame+0x1a>
 8002dce:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
 8002dd2:	801a      	strh	r2, [r3, #0]
 8002dd4:	2001      	movs	r0, #1
 8002dd6:	e7e7      	b.n	8002da8 <drv8316_frame+0x6>

08002dd8 <xfer>:
 8002dd8:	b573      	push	{r0, r1, r4, r5, r6, lr}
 8002dda:	461e      	mov	r6, r3
 8002ddc:	2300      	movs	r3, #0
 8002dde:	4605      	mov	r5, r0
 8002de0:	460c      	mov	r4, r1
 8002de2:	4610      	mov	r0, r2
 8002de4:	f8ad 3004 	strh.w	r3, [sp, #4]
 8002de8:	f8ad 3006 	strh.w	r3, [sp, #6]
 8002dec:	f89d 2018 	ldrb.w	r2, [sp, #24]
 8002df0:	ab01      	add	r3, sp, #4
 8002df2:	4631      	mov	r1, r6
 8002df4:	f7ff ffd5 	bl	8002da2 <drv8316_frame>
 8002df8:	b1e8      	cbz	r0, 8002e36 <xfer+0x5e>
 8002dfa:	7126      	strb	r6, [r4, #4]
 8002dfc:	686b      	ldr	r3, [r5, #4]
 8002dfe:	f8bd 1004 	ldrh.w	r1, [sp, #4]
 8002e02:	6828      	ldr	r0, [r5, #0]
 8002e04:	f10d 0206 	add.w	r2, sp, #6
 8002e08:	4798      	blx	r3
 8002e0a:	b1b0      	cbz	r0, 8002e3a <xfer+0x62>
 8002e0c:	692b      	ldr	r3, [r5, #16]
 8002e0e:	6828      	ldr	r0, [r5, #0]
 8002e10:	2101      	movs	r1, #1
 8002e12:	4798      	blx	r3
 8002e14:	f8bd 3006 	ldrh.w	r3, [sp, #6]
 8002e18:	0a1a      	lsrs	r2, r3, #8
 8002e1a:	70e2      	strb	r2, [r4, #3]
 8002e1c:	9a07      	ldr	r2, [sp, #28]
 8002e1e:	7013      	strb	r3, [r2, #0]
 8002e20:	7963      	ldrb	r3, [r4, #5]
 8002e22:	78e0      	ldrb	r0, [r4, #3]
 8002e24:	b10b      	cbz	r3, 8002e2a <xfer+0x52>
 8002e26:	0703      	lsls	r3, r0, #28
 8002e28:	d509      	bpl.n	8002e3e <xfer+0x66>
 8002e2a:	f010 00f7 	ands.w	r0, r0, #247	@ 0xf7
 8002e2e:	bf18      	it	ne
 8002e30:	2003      	movne	r0, #3
 8002e32:	b002      	add	sp, #8
 8002e34:	bd70      	pop	{r4, r5, r6, pc}
 8002e36:	2001      	movs	r0, #1
 8002e38:	e7fb      	b.n	8002e32 <xfer+0x5a>
 8002e3a:	2002      	movs	r0, #2
 8002e3c:	e7f9      	b.n	8002e32 <xfer+0x5a>
 8002e3e:	2003      	movs	r0, #3
 8002e40:	e7f7      	b.n	8002e32 <xfer+0x5a>

08002e42 <read_status>:
 8002e42:	e92d 43f7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
 8002e46:	2400      	movs	r4, #0
 8002e48:	4681      	mov	r9, r0
 8002e4a:	460d      	mov	r5, r1
 8002e4c:	4617      	mov	r7, r2
 8002e4e:	460e      	mov	r6, r1
 8002e50:	46a0      	mov	r8, r4
 8002e52:	e9cd 8600 	strd	r8, r6, [sp]
 8002e56:	b2e3      	uxtb	r3, r4
 8002e58:	2201      	movs	r2, #1
 8002e5a:	4629      	mov	r1, r5
 8002e5c:	4648      	mov	r0, r9
 8002e5e:	f7ff ffbb 	bl	8002dd8 <xfer>
 8002e62:	b980      	cbnz	r0, 8002e86 <read_status+0x44>
 8002e64:	7832      	ldrb	r2, [r6, #0]
 8002e66:	4284      	cmp	r4, r0
 8002e68:	bf14      	ite	ne
 8002e6a:	23ff      	movne	r3, #255	@ 0xff
 8002e6c:	23f7      	moveq	r3, #247	@ 0xf7
 8002e6e:	421a      	tst	r2, r3
 8002e70:	d108      	bne.n	8002e84 <read_status+0x42>
 8002e72:	3401      	adds	r4, #1
 8002e74:	2c03      	cmp	r4, #3
 8002e76:	f106 0601 	add.w	r6, r6, #1
 8002e7a:	d1ea      	bne.n	8002e52 <read_status+0x10>
 8002e7c:	b11f      	cbz	r7, 8002e86 <read_status+0x44>
 8002e7e:	782b      	ldrb	r3, [r5, #0]
 8002e80:	071b      	lsls	r3, r3, #28
 8002e82:	d403      	bmi.n	8002e8c <read_status+0x4a>
 8002e84:	2003      	movs	r0, #3
 8002e86:	b003      	add	sp, #12
 8002e88:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 8002e8c:	78eb      	ldrb	r3, [r5, #3]
 8002e8e:	f013 0f08 	tst.w	r3, #8
 8002e92:	bf08      	it	eq
 8002e94:	2003      	moveq	r0, #3
 8002e96:	e7f6      	b.n	8002e86 <read_status+0x44>

08002e98 <drv8316_configure_off>:
 8002e98:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 8002e9c:	b085      	sub	sp, #20
 8002e9e:	4604      	mov	r4, r0
 8002ea0:	460d      	mov	r5, r1
 8002ea2:	f7ff ff59 	bl	8002d58 <valid>
 8002ea6:	b100      	cbz	r0, 8002eaa <drv8316_configure_off+0x12>
 8002ea8:	b931      	cbnz	r1, 8002eb8 <drv8316_configure_off+0x20>
 8002eaa:	2201      	movs	r2, #1
 8002eac:	4629      	mov	r1, r5
 8002eae:	4620      	mov	r0, r4
 8002eb0:	b005      	add	sp, #20
 8002eb2:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 8002eb6:	e760      	b.n	8002d7a <stop>
 8002eb8:	68a3      	ldr	r3, [r4, #8]
 8002eba:	6820      	ldr	r0, [r4, #0]
 8002ebc:	2101      	movs	r1, #1
 8002ebe:	4798      	blx	r3
 8002ec0:	2206      	movs	r2, #6
 8002ec2:	2100      	movs	r1, #0
 8002ec4:	4628      	mov	r0, r5
 8002ec6:	f7fd fb0a 	bl	80004de <memset>
 8002eca:	68e3      	ldr	r3, [r4, #12]
 8002ecc:	6820      	ldr	r0, [r4, #0]
 8002ece:	2100      	movs	r1, #0
 8002ed0:	4798      	blx	r3
 8002ed2:	6923      	ldr	r3, [r4, #16]
 8002ed4:	6820      	ldr	r0, [r4, #0]
 8002ed6:	f44f 717a 	mov.w	r1, #1000	@ 0x3e8
 8002eda:	4798      	blx	r3
 8002edc:	68e3      	ldr	r3, [r4, #12]
 8002ede:	6820      	ldr	r0, [r4, #0]
 8002ee0:	2101      	movs	r1, #1
 8002ee2:	4798      	blx	r3
 8002ee4:	6923      	ldr	r3, [r4, #16]
 8002ee6:	6820      	ldr	r0, [r4, #0]
 8002ee8:	f44f 61fa 	mov.w	r1, #2000	@ 0x7d0
 8002eec:	4798      	blx	r3
 8002eee:	2200      	movs	r2, #0
 8002ef0:	4629      	mov	r1, r5
 8002ef2:	4620      	mov	r0, r4
 8002ef4:	f7ff ffa5 	bl	8002e42 <read_status>
 8002ef8:	4602      	mov	r2, r0
 8002efa:	2800      	cmp	r0, #0
 8002efc:	d1d6      	bne.n	8002eac <drv8316_configure_off+0x14>
 8002efe:	f8df 8080 	ldr.w	r8, [pc, #128]	@ 8002f80 <drv8316_configure_off+0xe8>
 8002f02:	4606      	mov	r6, r0
 8002f04:	4682      	mov	sl, r0
 8002f06:	f10d 090f 	add.w	r9, sp, #15
 8002f0a:	f898 b000 	ldrb.w	fp, [r8]
 8002f0e:	f898 7001 	ldrb.w	r7, [r8, #1]
 8002f12:	f88d a00f 	strb.w	sl, [sp, #15]
 8002f16:	2200      	movs	r2, #0
 8002f18:	e9cd 7900 	strd	r7, r9, [sp]
 8002f1c:	465b      	mov	r3, fp
 8002f1e:	4629      	mov	r1, r5
 8002f20:	4620      	mov	r0, r4
 8002f22:	f7ff ff59 	bl	8002dd8 <xfer>
 8002f26:	4602      	mov	r2, r0
 8002f28:	2800      	cmp	r0, #0
 8002f2a:	d1bf      	bne.n	8002eac <drv8316_configure_off+0x14>
 8002f2c:	e9cd 0900 	strd	r0, r9, [sp]
 8002f30:	2201      	movs	r2, #1
 8002f32:	465b      	mov	r3, fp
 8002f34:	4629      	mov	r1, r5
 8002f36:	4620      	mov	r0, r4
 8002f38:	f7ff ff4e 	bl	8002dd8 <xfer>
 8002f3c:	4602      	mov	r2, r0
 8002f3e:	2800      	cmp	r0, #0
 8002f40:	d1b4      	bne.n	8002eac <drv8316_configure_off+0x14>
 8002f42:	f007 03fe 	and.w	r3, r7, #254	@ 0xfe
 8002f46:	f1bb 0f04 	cmp.w	fp, #4
 8002f4a:	bf08      	it	eq
 8002f4c:	461f      	moveq	r7, r3
 8002f4e:	f89d 300f 	ldrb.w	r3, [sp, #15]
 8002f52:	42bb      	cmp	r3, r7
 8002f54:	d111      	bne.n	8002f7a <drv8316_configure_off+0xe2>
 8002f56:	3601      	adds	r6, #1
 8002f58:	2e08      	cmp	r6, #8
 8002f5a:	f108 0802 	add.w	r8, r8, #2
 8002f5e:	d1d4      	bne.n	8002f0a <drv8316_configure_off+0x72>
 8002f60:	2201      	movs	r2, #1
 8002f62:	4629      	mov	r1, r5
 8002f64:	4620      	mov	r0, r4
 8002f66:	f7ff ff6c 	bl	8002e42 <read_status>
 8002f6a:	4602      	mov	r2, r0
 8002f6c:	2800      	cmp	r0, #0
 8002f6e:	d19d      	bne.n	8002eac <drv8316_configure_off+0x14>
 8002f70:	2301      	movs	r3, #1
 8002f72:	716b      	strb	r3, [r5, #5]
 8002f74:	b005      	add	sp, #20
 8002f76:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 8002f7a:	2204      	movs	r2, #4
 8002f7c:	e796      	b.n	8002eac <drv8316_configure_off+0x14>
 8002f7e:	bf00      	nop
 8002f80:	08004128 	.word	0x08004128

08002f84 <drv8316_poll_faults>:
 8002f84:	b538      	push	{r3, r4, r5, lr}
 8002f86:	4605      	mov	r5, r0
 8002f88:	460c      	mov	r4, r1
 8002f8a:	f7ff fee5 	bl	8002d58 <valid>
 8002f8e:	b110      	cbz	r0, 8002f96 <drv8316_poll_faults+0x12>
 8002f90:	b109      	cbz	r1, 8002f96 <drv8316_poll_faults+0x12>
 8002f92:	794b      	ldrb	r3, [r1, #5]
 8002f94:	b92b      	cbnz	r3, 8002fa2 <drv8316_poll_faults+0x1e>
 8002f96:	2201      	movs	r2, #1
 8002f98:	4621      	mov	r1, r4
 8002f9a:	4628      	mov	r0, r5
 8002f9c:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 8002fa0:	e6eb      	b.n	8002d7a <stop>
 8002fa2:	2201      	movs	r2, #1
 8002fa4:	4628      	mov	r0, r5
 8002fa6:	f7ff ff4c 	bl	8002e42 <read_status>
 8002faa:	4602      	mov	r2, r0
 8002fac:	2800      	cmp	r0, #0
 8002fae:	d1f3      	bne.n	8002f98 <drv8316_poll_faults+0x14>
 8002fb0:	bd38      	pop	{r3, r4, r5, pc}
 8002fb2:	bf00      	nop

08002fb4 <fresh_inputs>:
 8002fb4:	b908      	cbnz	r0, 8002fba <fresh_inputs+0x6>
 8002fb6:	2000      	movs	r0, #0
 8002fb8:	4770      	bx	lr
 8002fba:	2a00      	cmp	r2, #0
 8002fbc:	d0fb      	beq.n	8002fb6 <fresh_inputs+0x2>
 8002fbe:	7813      	ldrb	r3, [r2, #0]
 8002fc0:	2b00      	cmp	r3, #0
 8002fc2:	d0f8      	beq.n	8002fb6 <fresh_inputs+0x2>
 8002fc4:	7853      	ldrb	r3, [r2, #1]
 8002fc6:	2b00      	cmp	r3, #0
 8002fc8:	d0f5      	beq.n	8002fb6 <fresh_inputs+0x2>
 8002fca:	7893      	ldrb	r3, [r2, #2]
 8002fcc:	2b00      	cmp	r3, #0
 8002fce:	d0f2      	beq.n	8002fb6 <fresh_inputs+0x2>
 8002fd0:	78d3      	ldrb	r3, [r2, #3]
 8002fd2:	2b00      	cmp	r3, #0
 8002fd4:	d0ef      	beq.n	8002fb6 <fresh_inputs+0x2>
 8002fd6:	79d3      	ldrb	r3, [r2, #7]
 8002fd8:	2b00      	cmp	r3, #0
 8002fda:	d0ec      	beq.n	8002fb6 <fresh_inputs+0x2>
 8002fdc:	7a13      	ldrb	r3, [r2, #8]
 8002fde:	2b00      	cmp	r3, #0
 8002fe0:	d1e9      	bne.n	8002fb6 <fresh_inputs+0x2>
 8002fe2:	7913      	ldrb	r3, [r2, #4]
 8002fe4:	2b00      	cmp	r3, #0
 8002fe6:	d1e6      	bne.n	8002fb6 <fresh_inputs+0x2>
 8002fe8:	7953      	ldrb	r3, [r2, #5]
 8002fea:	2b00      	cmp	r3, #0
 8002fec:	d1e3      	bne.n	8002fb6 <fresh_inputs+0x2>
 8002fee:	6913      	ldr	r3, [r2, #16]
 8002ff0:	1ac9      	subs	r1, r1, r3
 8002ff2:	6883      	ldr	r3, [r0, #8]
 8002ff4:	4299      	cmp	r1, r3
 8002ff6:	d8de      	bhi.n	8002fb6 <fresh_inputs+0x2>
 8002ff8:	68d3      	ldr	r3, [r2, #12]
 8002ffa:	6800      	ldr	r0, [r0, #0]
 8002ffc:	2b00      	cmp	r3, #0
 8002ffe:	bfb8      	it	lt
 8003000:	425b      	neglt	r3, r3
 8003002:	4298      	cmp	r0, r3
 8003004:	bf34      	ite	cc
 8003006:	2000      	movcc	r0, #0
 8003008:	2001      	movcs	r0, #1
 800300a:	4770      	bx	lr

0800300c <snapshot>:
 800300c:	b5f0      	push	{r4, r5, r6, r7, lr}
 800300e:	b1e9      	cbz	r1, 800304c <snapshot+0x40>
 8003010:	f891 5024 	ldrb.w	r5, [r1, #36]	@ 0x24
 8003014:	680a      	ldr	r2, [r1, #0]
 8003016:	f891 4027 	ldrb.w	r4, [r1, #39]	@ 0x27
 800301a:	f891 7025 	ldrb.w	r7, [r1, #37]	@ 0x25
 800301e:	1e6b      	subs	r3, r5, #1
 8003020:	f247 5630 	movw	r6, #30000	@ 0x7530
 8003024:	2b01      	cmp	r3, #1
 8003026:	bf8c      	ite	hi
 8003028:	2300      	movhi	r3, #0
 800302a:	2301      	movls	r3, #1
 800302c:	4296      	cmp	r6, r2
 800302e:	bf28      	it	cs
 8003030:	4616      	movcs	r6, r2
 8003032:	2c00      	cmp	r4, #0
 8003034:	bf18      	it	ne
 8003036:	4632      	movne	r2, r6
 8003038:	6bce      	ldr	r6, [r1, #60]	@ 0x3c
 800303a:	6c89      	ldr	r1, [r1, #72]	@ 0x48
 800303c:	7005      	strb	r5, [r0, #0]
 800303e:	e9c0 2601 	strd	r2, r6, [r0, #4]
 8003042:	7047      	strb	r7, [r0, #1]
 8003044:	7083      	strb	r3, [r0, #2]
 8003046:	70c4      	strb	r4, [r0, #3]
 8003048:	60c1      	str	r1, [r0, #12]
 800304a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 800304c:	2503      	movs	r5, #3
 800304e:	2701      	movs	r7, #1
 8003050:	460b      	mov	r3, r1
 8003052:	460c      	mov	r4, r1
 8003054:	460a      	mov	r2, r1
 8003056:	460e      	mov	r6, r1
 8003058:	e7f0      	b.n	800303c <snapshot+0x30>

0800305a <limit_target>:
 800305a:	6803      	ldr	r3, [r0, #0]
 800305c:	f890 0027 	ldrb.w	r0, [r0, #39]	@ 0x27
 8003060:	f247 5230 	movw	r2, #30000	@ 0x7530
 8003064:	429a      	cmp	r2, r3
 8003066:	bf28      	it	cs
 8003068:	461a      	movcs	r2, r3
 800306a:	2800      	cmp	r0, #0
 800306c:	bf18      	it	ne
 800306e:	4613      	movne	r3, r2
 8003070:	ea81 72e1 	eor.w	r2, r1, r1, asr #31
 8003074:	eba2 72e1 	sub.w	r2, r2, r1, asr #31
 8003078:	4293      	cmp	r3, r2
 800307a:	d204      	bcs.n	8003086 <limit_target+0x2c>
 800307c:	2900      	cmp	r1, #0
 800307e:	4618      	mov	r0, r3
 8003080:	da02      	bge.n	8003088 <limit_target+0x2e>
 8003082:	4258      	negs	r0, r3
 8003084:	4770      	bx	lr
 8003086:	4608      	mov	r0, r1
 8003088:	4770      	bx	lr

0800308a <ds_init>:
 800308a:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 800308c:	4606      	mov	r6, r0
 800308e:	460c      	mov	r4, r1
 8003090:	4617      	mov	r7, r2
 8003092:	b908      	cbnz	r0, 8003098 <ds_init+0xe>
 8003094:	2000      	movs	r0, #0
 8003096:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8003098:	2250      	movs	r2, #80	@ 0x50
 800309a:	2100      	movs	r1, #0
 800309c:	f7fd fa1f 	bl	80004de <memset>
 80030a0:	f240 1303 	movw	r3, #259	@ 0x103
 80030a4:	84b3      	strh	r3, [r6, #36]	@ 0x24
 80030a6:	2c00      	cmp	r4, #0
 80030a8:	d0f4      	beq.n	8003094 <ds_init+0xa>
 80030aa:	6821      	ldr	r1, [r4, #0]
 80030ac:	f24c 334f 	movw	r3, #49999	@ 0xc34f
 80030b0:	1e4a      	subs	r2, r1, #1
 80030b2:	429a      	cmp	r2, r3
 80030b4:	d8ee      	bhi.n	8003094 <ds_init+0xa>
 80030b6:	6863      	ldr	r3, [r4, #4]
 80030b8:	4a15      	ldr	r2, [pc, #84]	@ (8003110 <ds_init+0x86>)
 80030ba:	3b01      	subs	r3, #1
 80030bc:	4293      	cmp	r3, r2
 80030be:	d2e9      	bcs.n	8003094 <ds_init+0xa>
 80030c0:	68a3      	ldr	r3, [r4, #8]
 80030c2:	4a14      	ldr	r2, [pc, #80]	@ (8003114 <ds_init+0x8a>)
 80030c4:	3b01      	subs	r3, #1
 80030c6:	4293      	cmp	r3, r2
 80030c8:	d8e4      	bhi.n	8003094 <ds_init+0xa>
 80030ca:	68e3      	ldr	r3, [r4, #12]
 80030cc:	3b01      	subs	r3, #1
 80030ce:	f5b3 7f7a 	cmp.w	r3, #1000	@ 0x3e8
 80030d2:	d2df      	bcs.n	8003094 <ds_init+0xa>
 80030d4:	6923      	ldr	r3, [r4, #16]
 80030d6:	4810      	ldr	r0, [pc, #64]	@ (8003118 <ds_init+0x8e>)
 80030d8:	3b01      	subs	r3, #1
 80030da:	4283      	cmp	r3, r0
 80030dc:	d8da      	bhi.n	8003094 <ds_init+0xa>
 80030de:	6963      	ldr	r3, [r4, #20]
 80030e0:	4299      	cmp	r1, r3
 80030e2:	d3d7      	bcc.n	8003094 <ds_init+0xa>
 80030e4:	69a3      	ldr	r3, [r4, #24]
 80030e6:	3b01      	subs	r3, #1
 80030e8:	4293      	cmp	r3, r2
 80030ea:	d8d3      	bhi.n	8003094 <ds_init+0xa>
 80030ec:	69e3      	ldr	r3, [r4, #28]
 80030ee:	2b00      	cmp	r3, #0
 80030f0:	d0d0      	beq.n	8003094 <ds_init+0xa>
 80030f2:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 80030f4:	4635      	mov	r5, r6
 80030f6:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 80030f8:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 80030fa:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 80030fc:	6823      	ldr	r3, [r4, #0]
 80030fe:	602b      	str	r3, [r5, #0]
 8003100:	2001      	movs	r0, #1
 8003102:	2300      	movs	r3, #0
 8003104:	84b3      	strh	r3, [r6, #36]	@ 0x24
 8003106:	f886 0026 	strb.w	r0, [r6, #38]	@ 0x26
 800310a:	62f7      	str	r7, [r6, #44]	@ 0x2c
 800310c:	e7c3      	b.n	8003096 <ds_init+0xc>
 800310e:	bf00      	nop
 8003110:	00989680 	.word	0x00989680
 8003114:	7ffffffd 	.word	0x7ffffffd
 8003118:	05f5e0ff 	.word	0x05f5e0ff

0800311c <ds_set_beginner_mode>:
 800311c:	4603      	mov	r3, r0
 800311e:	b908      	cbnz	r0, 8003124 <ds_set_beginner_mode+0x8>
 8003120:	2000      	movs	r0, #0
 8003122:	4770      	bx	lr
 8003124:	f890 0026 	ldrb.w	r0, [r0, #38]	@ 0x26
 8003128:	b148      	cbz	r0, 800313e <ds_set_beginner_mode+0x22>
 800312a:	f893 2024 	ldrb.w	r2, [r3, #36]	@ 0x24
 800312e:	2a00      	cmp	r2, #0
 8003130:	d1f6      	bne.n	8003120 <ds_set_beginner_mode+0x4>
 8003132:	f893 2025 	ldrb.w	r2, [r3, #37]	@ 0x25
 8003136:	2a00      	cmp	r2, #0
 8003138:	d1f2      	bne.n	8003120 <ds_set_beginner_mode+0x4>
 800313a:	f883 1027 	strb.w	r1, [r3, #39]	@ 0x27
 800313e:	4770      	bx	lr

08003140 <ds_start>:
 8003140:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8003142:	4617      	mov	r7, r2
 8003144:	4604      	mov	r4, r0
 8003146:	460e      	mov	r6, r1
 8003148:	461a      	mov	r2, r3
 800314a:	b910      	cbnz	r0, 8003152 <ds_start+0x12>
 800314c:	2500      	movs	r5, #0
 800314e:	4628      	mov	r0, r5
 8003150:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8003152:	f890 5026 	ldrb.w	r5, [r0, #38]	@ 0x26
 8003156:	2d00      	cmp	r5, #0
 8003158:	d0f9      	beq.n	800314e <ds_start+0xe>
 800315a:	f890 3024 	ldrb.w	r3, [r0, #36]	@ 0x24
 800315e:	2b00      	cmp	r3, #0
 8003160:	d1f4      	bne.n	800314c <ds_start+0xc>
 8003162:	f890 3025 	ldrb.w	r3, [r0, #37]	@ 0x25
 8003166:	2b00      	cmp	r3, #0
 8003168:	d1f0      	bne.n	800314c <ds_start+0xc>
 800316a:	ea81 73e1 	eor.w	r3, r1, r1, asr #31
 800316e:	eba3 73e1 	sub.w	r3, r3, r1, asr #31
 8003172:	6801      	ldr	r1, [r0, #0]
 8003174:	4299      	cmp	r1, r3
 8003176:	d3e9      	bcc.n	800314c <ds_start+0xc>
 8003178:	2e00      	cmp	r6, #0
 800317a:	d0e7      	beq.n	800314c <ds_start+0xc>
 800317c:	4639      	mov	r1, r7
 800317e:	f7ff ff19 	bl	8002fb4 <fresh_inputs>
 8003182:	4605      	mov	r5, r0
 8003184:	2800      	cmp	r0, #0
 8003186:	d0e2      	beq.n	800314e <ds_start+0xe>
 8003188:	68d3      	ldr	r3, [r2, #12]
 800318a:	6960      	ldr	r0, [r4, #20]
 800318c:	ea83 72e3 	eor.w	r2, r3, r3, asr #31
 8003190:	2e00      	cmp	r6, #0
 8003192:	eba2 72e3 	sub.w	r2, r2, r3, asr #31
 8003196:	bfd4      	ite	le
 8003198:	f04f 31ff 	movle.w	r1, #4294967295	@ 0xffffffff
 800319c:	2101      	movgt	r1, #1
 800319e:	4290      	cmp	r0, r2
 80031a0:	d206      	bcs.n	80031b0 <ds_start+0x70>
 80031a2:	2b00      	cmp	r3, #0
 80031a4:	dc1a      	bgt.n	80031dc <ds_start+0x9c>
 80031a6:	d0d1      	beq.n	800314c <ds_start+0xc>
 80031a8:	f04f 33ff 	mov.w	r3, #4294967295	@ 0xffffffff
 80031ac:	4299      	cmp	r1, r3
 80031ae:	d1cd      	bne.n	800314c <ds_start+0xc>
 80031b0:	f884 1029 	strb.w	r1, [r4, #41]	@ 0x29
 80031b4:	4620      	mov	r0, r4
 80031b6:	4631      	mov	r1, r6
 80031b8:	f7ff ff4f 	bl	800305a <limit_target>
 80031bc:	2301      	movs	r3, #1
 80031be:	63a0      	str	r0, [r4, #56]	@ 0x38
 80031c0:	f884 3024 	strb.w	r3, [r4, #36]	@ 0x24
 80031c4:	2000      	movs	r0, #0
 80031c6:	2300      	movs	r3, #0
 80031c8:	2100      	movs	r1, #0
 80031ca:	e9c4 0110 	strd	r0, r1, [r4, #64]	@ 0x40
 80031ce:	62e7      	str	r7, [r4, #44]	@ 0x2c
 80031d0:	f884 3028 	strb.w	r3, [r4, #40]	@ 0x28
 80031d4:	63e3      	str	r3, [r4, #60]	@ 0x3c
 80031d6:	64a3      	str	r3, [r4, #72]	@ 0x48
 80031d8:	6363      	str	r3, [r4, #52]	@ 0x34
 80031da:	e7b8      	b.n	800314e <ds_start+0xe>
 80031dc:	2301      	movs	r3, #1
 80031de:	e7e5      	b.n	80031ac <ds_start+0x6c>

080031e0 <ds_stop>:
 80031e0:	b530      	push	{r4, r5, lr}
 80031e2:	b180      	cbz	r0, 8003206 <ds_stop+0x26>
 80031e4:	f890 3024 	ldrb.w	r3, [r0, #36]	@ 0x24
 80031e8:	2b03      	cmp	r3, #3
 80031ea:	d00c      	beq.n	8003206 <ds_stop+0x26>
 80031ec:	2300      	movs	r3, #0
 80031ee:	2400      	movs	r4, #0
 80031f0:	2500      	movs	r5, #0
 80031f2:	e9c0 4510 	strd	r4, r5, [r0, #64]	@ 0x40
 80031f6:	e9c0 330d 	strd	r3, r3, [r0, #52]	@ 0x34
 80031fa:	63c3      	str	r3, [r0, #60]	@ 0x3c
 80031fc:	6483      	str	r3, [r0, #72]	@ 0x48
 80031fe:	f880 3024 	strb.w	r3, [r0, #36]	@ 0x24
 8003202:	f880 3028 	strb.w	r3, [r0, #40]	@ 0x28
 8003206:	bd30      	pop	{r4, r5, pc}

08003208 <ds_update>:
 8003208:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 800320c:	b08b      	sub	sp, #44	@ 0x2c
 800320e:	460c      	mov	r4, r1
 8003210:	9001      	str	r0, [sp, #4]
 8003212:	a806      	add	r0, sp, #24
 8003214:	9d14      	ldr	r5, [sp, #80]	@ 0x50
 8003216:	4616      	mov	r6, r2
 8003218:	4698      	mov	r8, r3
 800321a:	f7ff fef7 	bl	800300c <snapshot>
 800321e:	b154      	cbz	r4, 8003236 <ds_update+0x2e>
 8003220:	f894 3026 	ldrb.w	r3, [r4, #38]	@ 0x26
 8003224:	b13b      	cbz	r3, 8003236 <ds_update+0x2e>
 8003226:	f894 9024 	ldrb.w	r9, [r4, #36]	@ 0x24
 800322a:	f1b9 0f03 	cmp.w	r9, #3
 800322e:	d002      	beq.n	8003236 <ds_update+0x2e>
 8003230:	f1b9 0f00 	cmp.w	r9, #0
 8003234:	d108      	bne.n	8003248 <ds_update+0x40>
 8003236:	ab06      	add	r3, sp, #24
 8003238:	cb0f      	ldmia	r3, {r0, r1, r2, r3}
 800323a:	9c01      	ldr	r4, [sp, #4]
 800323c:	e884 000f 	stmia.w	r4, {r0, r1, r2, r3}
 8003240:	9801      	ldr	r0, [sp, #4]
 8003242:	b00b      	add	sp, #44	@ 0x2c
 8003244:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 8003248:	6ae7      	ldr	r7, [r4, #44]	@ 0x2c
 800324a:	ebb8 0707 	subs.w	r7, r8, r7
 800324e:	d104      	bne.n	800325a <ds_update+0x52>
 8003250:	9801      	ldr	r0, [sp, #4]
 8003252:	4621      	mov	r1, r4
 8003254:	f7ff feda 	bl	800300c <snapshot>
 8003258:	e7f2      	b.n	8003240 <ds_update+0x38>
 800325a:	68e3      	ldr	r3, [r4, #12]
 800325c:	42bb      	cmp	r3, r7
 800325e:	d20e      	bcs.n	800327e <ds_update+0x76>
 8003260:	2300      	movs	r3, #0
 8003262:	2000      	movs	r0, #0
 8003264:	2100      	movs	r1, #0
 8003266:	e9c4 0110 	strd	r0, r1, [r4, #64]	@ 0x40
 800326a:	e9c4 330d 	strd	r3, r3, [r4, #52]	@ 0x34
 800326e:	f240 2203 	movw	r2, #515	@ 0x203
 8003272:	63e3      	str	r3, [r4, #60]	@ 0x3c
 8003274:	64a3      	str	r3, [r4, #72]	@ 0x48
 8003276:	84a2      	strh	r2, [r4, #36]	@ 0x24
 8003278:	f884 3028 	strb.w	r3, [r4, #40]	@ 0x28
 800327c:	e7e8      	b.n	8003250 <ds_update+0x48>
 800327e:	f8c4 802c 	str.w	r8, [r4, #44]	@ 0x2c
 8003282:	b97d      	cbnz	r5, 80032a4 <ds_update+0x9c>
 8003284:	2204      	movs	r2, #4
 8003286:	2100      	movs	r1, #0
 8003288:	2000      	movs	r0, #0
 800328a:	2300      	movs	r3, #0
 800328c:	e9c4 0110 	strd	r0, r1, [r4, #64]	@ 0x40
 8003290:	2103      	movs	r1, #3
 8003292:	e9c4 330d 	strd	r3, r3, [r4, #52]	@ 0x34
 8003296:	63e3      	str	r3, [r4, #60]	@ 0x3c
 8003298:	64a3      	str	r3, [r4, #72]	@ 0x48
 800329a:	f884 1024 	strb.w	r1, [r4, #36]	@ 0x24
 800329e:	f884 2025 	strb.w	r2, [r4, #37]	@ 0x25
 80032a2:	e7e9      	b.n	8003278 <ds_update+0x70>
 80032a4:	782b      	ldrb	r3, [r5, #0]
 80032a6:	2b00      	cmp	r3, #0
 80032a8:	d0ec      	beq.n	8003284 <ds_update+0x7c>
 80032aa:	786b      	ldrb	r3, [r5, #1]
 80032ac:	2b00      	cmp	r3, #0
 80032ae:	d0e9      	beq.n	8003284 <ds_update+0x7c>
 80032b0:	78eb      	ldrb	r3, [r5, #3]
 80032b2:	2b00      	cmp	r3, #0
 80032b4:	d0e6      	beq.n	8003284 <ds_update+0x7c>
 80032b6:	79eb      	ldrb	r3, [r5, #7]
 80032b8:	2b00      	cmp	r3, #0
 80032ba:	d0e3      	beq.n	8003284 <ds_update+0x7c>
 80032bc:	792b      	ldrb	r3, [r5, #4]
 80032be:	b10b      	cbz	r3, 80032c4 <ds_update+0xbc>
 80032c0:	2205      	movs	r2, #5
 80032c2:	e7e0      	b.n	8003286 <ds_update+0x7e>
 80032c4:	796b      	ldrb	r3, [r5, #5]
 80032c6:	2b00      	cmp	r3, #0
 80032c8:	d1fa      	bne.n	80032c0 <ds_update+0xb8>
 80032ca:	78ab      	ldrb	r3, [r5, #2]
 80032cc:	b1cb      	cbz	r3, 8003302 <ds_update+0xfa>
 80032ce:	692b      	ldr	r3, [r5, #16]
 80032d0:	68a2      	ldr	r2, [r4, #8]
 80032d2:	eba8 0303 	sub.w	r3, r8, r3
 80032d6:	4293      	cmp	r3, r2
 80032d8:	d813      	bhi.n	8003302 <ds_update+0xfa>
 80032da:	f8d5 a00c 	ldr.w	sl, [r5, #12]
 80032de:	ea8a 73ea 	eor.w	r3, sl, sl, asr #31
 80032e2:	eba3 73ea 	sub.w	r3, r3, sl, asr #31
 80032e6:	9302      	str	r3, [sp, #8]
 80032e8:	ea8a 72ea 	eor.w	r2, sl, sl, asr #31
 80032ec:	6823      	ldr	r3, [r4, #0]
 80032ee:	eba2 72ea 	sub.w	r2, r2, sl, asr #31
 80032f2:	4293      	cmp	r3, r2
 80032f4:	d307      	bcc.n	8003306 <ds_update+0xfe>
 80032f6:	7a2a      	ldrb	r2, [r5, #8]
 80032f8:	b13a      	cbz	r2, 800330a <ds_update+0x102>
 80032fa:	4620      	mov	r0, r4
 80032fc:	f7ff ff70 	bl	80031e0 <ds_stop>
 8003300:	e7a6      	b.n	8003250 <ds_update+0x48>
 8003302:	2203      	movs	r2, #3
 8003304:	e7bf      	b.n	8003286 <ds_update+0x7e>
 8003306:	2206      	movs	r2, #6
 8003308:	e7bd      	b.n	8003286 <ds_update+0x7e>
 800330a:	ea86 71e6 	eor.w	r1, r6, r6, asr #31
 800330e:	eba1 71e6 	sub.w	r1, r1, r6, asr #31
 8003312:	428b      	cmp	r3, r1
 8003314:	d20d      	bcs.n	8003332 <ds_update+0x12a>
 8003316:	2000      	movs	r0, #0
 8003318:	2100      	movs	r1, #0
 800331a:	f240 7303 	movw	r3, #1795	@ 0x703
 800331e:	e9c4 0110 	strd	r0, r1, [r4, #64]	@ 0x40
 8003322:	e9c4 220d 	strd	r2, r2, [r4, #52]	@ 0x34
 8003326:	63e2      	str	r2, [r4, #60]	@ 0x3c
 8003328:	64a2      	str	r2, [r4, #72]	@ 0x48
 800332a:	84a3      	strh	r3, [r4, #36]	@ 0x24
 800332c:	f884 2028 	strb.w	r2, [r4, #40]	@ 0x28
 8003330:	e78e      	b.n	8003250 <ds_update+0x48>
 8003332:	4631      	mov	r1, r6
 8003334:	4620      	mov	r0, r4
 8003336:	f7ff fe90 	bl	800305a <limit_target>
 800333a:	1e06      	subs	r6, r0, #0
 800333c:	f300 80d5 	bgt.w	80034ea <ds_update+0x2e2>
 8003340:	f000 80e4 	beq.w	800350c <ds_update+0x304>
 8003344:	f04f 30ff 	mov.w	r0, #4294967295	@ 0xffffffff
 8003348:	f994 3029 	ldrsb.w	r3, [r4, #41]	@ 0x29
 800334c:	4283      	cmp	r3, r0
 800334e:	f000 80dd 	beq.w	800350c <ds_update+0x304>
 8003352:	2302      	movs	r3, #2
 8003354:	2200      	movs	r2, #0
 8003356:	f884 3024 	strb.w	r3, [r4, #36]	@ 0x24
 800335a:	2300      	movs	r3, #0
 800335c:	e9c4 2310 	strd	r2, r3, [r4, #64]	@ 0x40
 8003360:	6963      	ldr	r3, [r4, #20]
 8003362:	9a02      	ldr	r2, [sp, #8]
 8003364:	2100      	movs	r1, #0
 8003366:	4293      	cmp	r3, r2
 8003368:	63e1      	str	r1, [r4, #60]	@ 0x3c
 800336a:	64a1      	str	r1, [r4, #72]	@ 0x48
 800336c:	6361      	str	r1, [r4, #52]	@ 0x34
 800336e:	f0c0 80ca 	bcc.w	8003506 <ds_update+0x2fe>
 8003372:	f894 3028 	ldrb.w	r3, [r4, #40]	@ 0x28
 8003376:	2b00      	cmp	r3, #0
 8003378:	f040 80b9 	bne.w	80034ee <ds_update+0x2e6>
 800337c:	2301      	movs	r3, #1
 800337e:	f884 3028 	strb.w	r3, [r4, #40]	@ 0x28
 8003382:	f8c4 8030 	str.w	r8, [r4, #48]	@ 0x30
 8003386:	f894 3024 	ldrb.w	r3, [r4, #36]	@ 0x24
 800338a:	63a6      	str	r6, [r4, #56]	@ 0x38
 800338c:	2b02      	cmp	r3, #2
 800338e:	f43f af5f 	beq.w	8003250 <ds_update+0x48>
 8003392:	6b63      	ldr	r3, [r4, #52]	@ 0x34
 8003394:	6922      	ldr	r2, [r4, #16]
 8003396:	63a6      	str	r6, [r4, #56]	@ 0x38
 8003398:	f04f 0800 	mov.w	r8, #0
 800339c:	fbe2 3807 	umlal	r3, r8, r2, r7
 80033a0:	4699      	mov	r9, r3
 80033a2:	f44f 727a 	mov.w	r2, #1000	@ 0x3e8
 80033a6:	2300      	movs	r3, #0
 80033a8:	4648      	mov	r0, r9
 80033aa:	4641      	mov	r1, r8
 80033ac:	f000 fcc8 	bl	8003d40 <__aeabi_uldivmod>
 80033b0:	6be3      	ldr	r3, [r4, #60]	@ 0x3c
 80033b2:	6362      	str	r2, [r4, #52]	@ 0x34
 80033b4:	ebb6 0c03 	subs.w	ip, r6, r3
 80033b8:	ea4f 72e6 	mov.w	r2, r6, asr #31
 80033bc:	eb62 72e3 	sbc.w	r2, r2, r3, asr #31
 80033c0:	2a00      	cmp	r2, #0
 80033c2:	4686      	mov	lr, r0
 80033c4:	4693      	mov	fp, r2
 80033c6:	da03      	bge.n	80033d0 <ds_update+0x1c8>
 80033c8:	f1dc 0c00 	rsbs	ip, ip, #0
 80033cc:	eb62 0b42 	sbc.w	fp, r2, r2, lsl #1
 80033d0:	4560      	cmp	r0, ip
 80033d2:	eb71 0b0b 	sbcs.w	fp, r1, fp
 80033d6:	f0c0 80a3 	bcc.w	8003520 <ds_update+0x318>
 80033da:	2300      	movs	r3, #0
 80033dc:	6363      	str	r3, [r4, #52]	@ 0x34
 80033de:	4633      	mov	r3, r6
 80033e0:	431e      	orrs	r6, r3
 80033e2:	63e3      	str	r3, [r4, #60]	@ 0x3c
 80033e4:	d103      	bne.n	80033ee <ds_update+0x1e6>
 80033e6:	6962      	ldr	r2, [r4, #20]
 80033e8:	9902      	ldr	r1, [sp, #8]
 80033ea:	428a      	cmp	r2, r1
 80033ec:	d285      	bcs.n	80032fa <ds_update+0xf2>
 80033ee:	79aa      	ldrb	r2, [r5, #6]
 80033f0:	9204      	str	r2, [sp, #16]
 80033f2:	17da      	asrs	r2, r3, #31
 80033f4:	ebb3 030a 	subs.w	r3, r3, sl
 80033f8:	9303      	str	r3, [sp, #12]
 80033fa:	eb62 7bea 	sbc.w	fp, r2, sl, asr #31
 80033fe:	69e3      	ldr	r3, [r4, #28]
 8003400:	9a03      	ldr	r2, [sp, #12]
 8003402:	6a21      	ldr	r1, [r4, #32]
 8003404:	6865      	ldr	r5, [r4, #4]
 8003406:	9502      	str	r5, [sp, #8]
 8003408:	fba3 2602 	umull	r2, r6, r3, r2
 800340c:	fb03 660b 	mla	r6, r3, fp, r6
 8003410:	9b03      	ldr	r3, [sp, #12]
 8003412:	9205      	str	r2, [sp, #20]
 8003414:	fba7 0303 	umull	r0, r3, r7, r3
 8003418:	fb07 370b 	mla	r7, r7, fp, r3
 800341c:	fba0 0c01 	umull	r0, ip, r0, r1
 8003420:	f44f 727a 	mov.w	r2, #1000	@ 0x3e8
 8003424:	2300      	movs	r3, #0
 8003426:	fb01 c107 	mla	r1, r1, r7, ip
 800342a:	f000 fc39 	bl	8003ca0 <__aeabi_ldivmod>
 800342e:	e9d4 3210 	ldrd	r3, r2, [r4, #64]	@ 0x40
 8003432:	ea4f 4805 	mov.w	r8, r5, lsl #16
 8003436:	18c0      	adds	r0, r0, r3
 8003438:	eb42 0101 	adc.w	r1, r2, r1
 800343c:	ea4f 4915 	mov.w	r9, r5, lsr #16
 8003440:	4580      	cmp	r8, r0
 8003442:	eb79 0301 	sbcs.w	r3, r9, r1
 8003446:	db09      	blt.n	800345c <ds_update+0x254>
 8003448:	f1d8 0800 	rsbs	r8, r8, #0
 800344c:	eb69 0949 	sbc.w	r9, r9, r9, lsl #1
 8003450:	4580      	cmp	r8, r0
 8003452:	eb79 0301 	sbcs.w	r3, r9, r1
 8003456:	bfbc      	itt	lt
 8003458:	4680      	movlt	r8, r0
 800345a:	4689      	movlt	r9, r1
 800345c:	9b05      	ldr	r3, [sp, #20]
 800345e:	eb13 0008 	adds.w	r0, r3, r8
 8003462:	eb46 0609 	adc.w	r6, r6, r9
 8003466:	2e00      	cmp	r6, #0
 8003468:	da66      	bge.n	8003538 <ds_update+0x330>
 800346a:	4243      	negs	r3, r0
 800346c:	eb66 0246 	sbc.w	r2, r6, r6, lsl #1
 8003470:	2a00      	cmp	r2, #0
 8003472:	da04      	bge.n	800347e <ds_update+0x276>
 8003474:	f64f 71ff 	movw	r1, #65535	@ 0xffff
 8003478:	185b      	adds	r3, r3, r1
 800347a:	f142 0200 	adc.w	r2, r2, #0
 800347e:	0c1b      	lsrs	r3, r3, #16
 8003480:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
 8003484:	425b      	negs	r3, r3
 8003486:	ea4f 4222 	mov.w	r2, r2, asr #16
 800348a:	eb62 0242 	sbc.w	r2, r2, r2, lsl #1
 800348e:	4269      	negs	r1, r5
 8003490:	eb67 0707 	sbc.w	r7, r7, r7
 8003494:	4299      	cmp	r1, r3
 8003496:	4197      	sbcs	r7, r2
 8003498:	da00      	bge.n	800349c <ds_update+0x294>
 800349a:	4619      	mov	r1, r3
 800349c:	17cf      	asrs	r7, r1, #31
 800349e:	4299      	cmp	r1, r3
 80034a0:	eb77 0c02 	sbcs.w	ip, r7, r2
 80034a4:	da53      	bge.n	800354e <ds_update+0x346>
 80034a6:	f1bb 0f00 	cmp.w	fp, #0
 80034aa:	da59      	bge.n	8003560 <ds_update+0x358>
 80034ac:	2e00      	cmp	r6, #0
 80034ae:	e9c4 8910 	strd	r8, r9, [r4, #64]	@ 0x40
 80034b2:	da68      	bge.n	8003586 <ds_update+0x37e>
 80034b4:	4243      	negs	r3, r0
 80034b6:	eb66 0246 	sbc.w	r2, r6, r6, lsl #1
 80034ba:	2a00      	cmp	r2, #0
 80034bc:	da04      	bge.n	80034c8 <ds_update+0x2c0>
 80034be:	f64f 71ff 	movw	r1, #65535	@ 0xffff
 80034c2:	185b      	adds	r3, r3, r1
 80034c4:	f142 0200 	adc.w	r2, r2, #0
 80034c8:	0c1b      	lsrs	r3, r3, #16
 80034ca:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
 80034ce:	425b      	negs	r3, r3
 80034d0:	ea4f 4222 	mov.w	r2, r2, asr #16
 80034d4:	eb62 0242 	sbc.w	r2, r2, r2, lsl #1
 80034d8:	426d      	negs	r5, r5
 80034da:	eb61 0101 	sbc.w	r1, r1, r1
 80034de:	429d      	cmp	r5, r3
 80034e0:	4191      	sbcs	r1, r2
 80034e2:	9502      	str	r5, [sp, #8]
 80034e4:	bfb8      	it	lt
 80034e6:	9302      	strlt	r3, [sp, #8]
 80034e8:	e056      	b.n	8003598 <ds_update+0x390>
 80034ea:	2001      	movs	r0, #1
 80034ec:	e72c      	b.n	8003348 <ds_update+0x140>
 80034ee:	6b23      	ldr	r3, [r4, #48]	@ 0x30
 80034f0:	eba8 0803 	sub.w	r8, r8, r3
 80034f4:	69a3      	ldr	r3, [r4, #24]
 80034f6:	4598      	cmp	r8, r3
 80034f8:	f4ff af45 	bcc.w	8003386 <ds_update+0x17e>
 80034fc:	2301      	movs	r3, #1
 80034fe:	f884 0029 	strb.w	r0, [r4, #41]	@ 0x29
 8003502:	f884 3024 	strb.w	r3, [r4, #36]	@ 0x24
 8003506:	f884 1028 	strb.w	r1, [r4, #40]	@ 0x28
 800350a:	e73c      	b.n	8003386 <ds_update+0x17e>
 800350c:	f1b9 0f02 	cmp.w	r9, #2
 8003510:	bf01      	itttt	eq
 8003512:	2301      	moveq	r3, #1
 8003514:	f884 3024 	strbeq.w	r3, [r4, #36]	@ 0x24
 8003518:	2300      	moveq	r3, #0
 800351a:	f884 3028 	strbeq.w	r3, [r4, #40]	@ 0x28
 800351e:	e738      	b.n	8003392 <ds_update+0x18a>
 8003520:	f5b9 7f7a 	cmp.w	r9, #1000	@ 0x3e8
 8003524:	f178 0800 	sbcs.w	r8, r8, #0
 8003528:	f4ff af5a 	bcc.w	80033e0 <ds_update+0x1d8>
 800352c:	2a00      	cmp	r2, #0
 800352e:	bfb8      	it	lt
 8003530:	f1c0 0e00 	rsblt	lr, r0, #0
 8003534:	4473      	add	r3, lr
 8003536:	e753      	b.n	80033e0 <ds_update+0x1d8>
 8003538:	0c03      	lsrs	r3, r0, #16
 800353a:	ea43 4306 	orr.w	r3, r3, r6, lsl #16
 800353e:	1432      	asrs	r2, r6, #16
 8003540:	429d      	cmp	r5, r3
 8003542:	f04f 0100 	mov.w	r1, #0
 8003546:	4191      	sbcs	r1, r2
 8003548:	daa1      	bge.n	800348e <ds_update+0x286>
 800354a:	4629      	mov	r1, r5
 800354c:	e7a6      	b.n	800349c <ds_update+0x294>
 800354e:	428b      	cmp	r3, r1
 8003550:	eb72 0707 	sbcs.w	r7, r2, r7
 8003554:	daaa      	bge.n	80034ac <ds_update+0x2a4>
 8003556:	9f03      	ldr	r7, [sp, #12]
 8003558:	2f01      	cmp	r7, #1
 800355a:	f17b 0700 	sbcs.w	r7, fp, #0
 800355e:	daa5      	bge.n	80034ac <ds_update+0x2a4>
 8003560:	9804      	ldr	r0, [sp, #16]
 8003562:	b970      	cbnz	r0, 8003582 <ds_update+0x37a>
 8003564:	fb8a 5001 	smull	r5, r0, sl, r1
 8003568:	2800      	cmp	r0, #0
 800356a:	da0a      	bge.n	8003582 <ds_update+0x37a>
 800356c:	ea4f 71ea 	mov.w	r1, sl, asr #31
 8003570:	fb0a f202 	mul.w	r2, sl, r2
 8003574:	fb03 2201 	mla	r2, r3, r1, r2
 8003578:	fbaa 1303 	umull	r1, r3, sl, r3
 800357c:	42da      	cmn	r2, r3
 800357e:	d40d      	bmi.n	800359c <ds_update+0x394>
 8003580:	2100      	movs	r1, #0
 8003582:	64a1      	str	r1, [r4, #72]	@ 0x48
 8003584:	e664      	b.n	8003250 <ds_update+0x48>
 8003586:	0c03      	lsrs	r3, r0, #16
 8003588:	ea43 4306 	orr.w	r3, r3, r6, lsl #16
 800358c:	1432      	asrs	r2, r6, #16
 800358e:	429d      	cmp	r5, r3
 8003590:	f04f 0100 	mov.w	r1, #0
 8003594:	4191      	sbcs	r1, r2
 8003596:	da9f      	bge.n	80034d8 <ds_update+0x2d0>
 8003598:	9902      	ldr	r1, [sp, #8]
 800359a:	e7e1      	b.n	8003560 <ds_update+0x358>
 800359c:	2200      	movs	r2, #0
 800359e:	2300      	movs	r3, #0
 80035a0:	e9c4 2310 	strd	r2, r3, [r4, #64]	@ 0x40
 80035a4:	e7ec      	b.n	8003580 <ds_update+0x378>

080035a6 <ds_clear_fault>:
 80035a6:	b570      	push	{r4, r5, r6, lr}
 80035a8:	4604      	mov	r4, r0
 80035aa:	460d      	mov	r5, r1
 80035ac:	b910      	cbnz	r0, 80035b4 <ds_clear_fault+0xe>
 80035ae:	2300      	movs	r3, #0
 80035b0:	4618      	mov	r0, r3
 80035b2:	bd70      	pop	{r4, r5, r6, pc}
 80035b4:	f890 3026 	ldrb.w	r3, [r0, #38]	@ 0x26
 80035b8:	2b00      	cmp	r3, #0
 80035ba:	d0f9      	beq.n	80035b0 <ds_clear_fault+0xa>
 80035bc:	f890 3024 	ldrb.w	r3, [r0, #36]	@ 0x24
 80035c0:	2b03      	cmp	r3, #3
 80035c2:	d1f4      	bne.n	80035ae <ds_clear_fault+0x8>
 80035c4:	f7ff fcf6 	bl	8002fb4 <fresh_inputs>
 80035c8:	4603      	mov	r3, r0
 80035ca:	2800      	cmp	r0, #0
 80035cc:	d0f0      	beq.n	80035b0 <ds_clear_fault+0xa>
 80035ce:	68d2      	ldr	r2, [r2, #12]
 80035d0:	6961      	ldr	r1, [r4, #20]
 80035d2:	2a00      	cmp	r2, #0
 80035d4:	bfb8      	it	lt
 80035d6:	4252      	neglt	r2, r2
 80035d8:	4291      	cmp	r1, r2
 80035da:	d3e8      	bcc.n	80035ae <ds_clear_fault+0x8>
 80035dc:	2200      	movs	r2, #0
 80035de:	2000      	movs	r0, #0
 80035e0:	2100      	movs	r1, #0
 80035e2:	e9c4 0110 	strd	r0, r1, [r4, #64]	@ 0x40
 80035e6:	84a2      	strh	r2, [r4, #36]	@ 0x24
 80035e8:	62e5      	str	r5, [r4, #44]	@ 0x2c
 80035ea:	8522      	strh	r2, [r4, #40]	@ 0x28
 80035ec:	63e2      	str	r2, [r4, #60]	@ 0x3c
 80035ee:	64a2      	str	r2, [r4, #72]	@ 0x48
 80035f0:	6362      	str	r2, [r4, #52]	@ 0x34
 80035f2:	e7dd      	b.n	80035b0 <ds_clear_fault+0xa>

080035f4 <safe_off>:
 80035f4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 80035f6:	4607      	mov	r7, r0
 80035f8:	460e      	mov	r6, r1
 80035fa:	4615      	mov	r5, r2
 80035fc:	b1e8      	cbz	r0, 800363a <safe_off+0x46>
 80035fe:	6844      	ldr	r4, [r0, #4]
 8003600:	b11c      	cbz	r4, 800360a <safe_off+0x16>
 8003602:	6800      	ldr	r0, [r0, #0]
 8003604:	2100      	movs	r1, #0
 8003606:	47a0      	blx	r4
 8003608:	4604      	mov	r4, r0
 800360a:	693b      	ldr	r3, [r7, #16]
 800360c:	b1bb      	cbz	r3, 800363e <safe_off+0x4a>
 800360e:	6838      	ldr	r0, [r7, #0]
 8003610:	2101      	movs	r1, #1
 8003612:	4798      	blx	r3
 8003614:	b15e      	cbz	r6, 800362e <safe_off+0x3a>
 8003616:	2300      	movs	r3, #0
 8003618:	7073      	strb	r3, [r6, #1]
 800361a:	b194      	cbz	r4, 8003642 <safe_off+0x4e>
 800361c:	4298      	cmp	r0, r3
 800361e:	bf14      	ite	ne
 8003620:	462b      	movne	r3, r5
 8003622:	2307      	moveq	r3, #7
 8003624:	7033      	strb	r3, [r6, #0]
 8003626:	2300      	movs	r3, #0
 8003628:	80b3      	strh	r3, [r6, #4]
 800362a:	80f3      	strh	r3, [r6, #6]
 800362c:	8073      	strh	r3, [r6, #2]
 800362e:	b154      	cbz	r4, 8003646 <safe_off+0x52>
 8003630:	2800      	cmp	r0, #0
 8003632:	bf08      	it	eq
 8003634:	2507      	moveq	r5, #7
 8003636:	4628      	mov	r0, r5
 8003638:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 800363a:	4604      	mov	r4, r0
 800363c:	e7ea      	b.n	8003614 <safe_off+0x20>
 800363e:	4618      	mov	r0, r3
 8003640:	e7e8      	b.n	8003614 <safe_off+0x20>
 8003642:	2307      	movs	r3, #7
 8003644:	e7ee      	b.n	8003624 <safe_off+0x30>
 8003646:	2507      	movs	r5, #7
 8003648:	e7f5      	b.n	8003636 <safe_off+0x42>

0800364a <charge_decode_source>:
 800364a:	b570      	push	{r4, r5, r6, lr}
 800364c:	9c04      	ldr	r4, [sp, #16]
 800364e:	b90b      	cbnz	r3, 8003654 <charge_decode_source+0xa>
 8003650:	2000      	movs	r0, #0
 8003652:	bd70      	pop	{r4, r5, r6, pc}
 8003654:	2c00      	cmp	r4, #0
 8003656:	d0fb      	beq.n	8003650 <charge_decode_source+0x6>
 8003658:	2500      	movs	r5, #0
 800365a:	801d      	strh	r5, [r3, #0]
 800365c:	8025      	strh	r5, [r4, #0]
 800365e:	064d      	lsls	r5, r1, #25
 8003660:	d5f6      	bpl.n	8003650 <charge_decode_source+0x6>
 8003662:	0905      	lsrs	r5, r0, #4
 8003664:	1e6e      	subs	r6, r5, #1
 8003666:	2e01      	cmp	r6, #1
 8003668:	d81a      	bhi.n	80036a0 <charge_decode_source+0x56>
 800366a:	f242 3228 	movw	r2, #9000	@ 0x2328
 800366e:	f241 3188 	movw	r1, #5000	@ 0x1388
 8003672:	2d01      	cmp	r5, #1
 8003674:	bf08      	it	eq
 8003676:	460a      	moveq	r2, r1
 8003678:	801a      	strh	r2, [r3, #0]
 800367a:	f000 000f 	and.w	r0, r0, #15
 800367e:	4b15      	ldr	r3, [pc, #84]	@ (80036d4 <charge_decode_source+0x8a>)
 8003680:	f833 3010 	ldrh.w	r3, [r3, r0, lsl #1]
 8003684:	f5b3 6ffa 	cmp.w	r3, #2000	@ 0x7d0
 8003688:	f04f 025a 	mov.w	r2, #90	@ 0x5a
 800368c:	bf28      	it	cs
 800368e:	f44f 63fa 	movcs.w	r3, #2000	@ 0x7d0
 8003692:	4353      	muls	r3, r2
 8003694:	2001      	movs	r0, #1
 8003696:	2264      	movs	r2, #100	@ 0x64
 8003698:	fbb3 f3f2 	udiv	r3, r3, r2
 800369c:	8023      	strh	r3, [r4, #0]
 800369e:	e7d8      	b.n	8003652 <charge_decode_source+0x8>
 80036a0:	2d00      	cmp	r5, #0
 80036a2:	d1d5      	bne.n	8003650 <charge_decode_source+0x6>
 80036a4:	0748      	lsls	r0, r1, #29
 80036a6:	d509      	bpl.n	80036bc <charge_decode_source+0x72>
 80036a8:	f241 3288 	movw	r2, #5000	@ 0x1388
 80036ac:	801a      	strh	r2, [r3, #0]
 80036ae:	4b09      	ldr	r3, [pc, #36]	@ (80036d4 <charge_decode_source+0x8a>)
 80036b0:	f001 0103 	and.w	r1, r1, #3
 80036b4:	eb03 0341 	add.w	r3, r3, r1, lsl #1
 80036b8:	8c1b      	ldrh	r3, [r3, #32]
 80036ba:	e7e3      	b.n	8003684 <charge_decode_source+0x3a>
 80036bc:	0611      	lsls	r1, r2, #24
 80036be:	d5c7      	bpl.n	8003650 <charge_decode_source+0x6>
 80036c0:	f241 3188 	movw	r1, #5000	@ 0x1388
 80036c4:	8019      	strh	r1, [r3, #0]
 80036c6:	f002 020f 	and.w	r2, r2, #15
 80036ca:	4b02      	ldr	r3, [pc, #8]	@ (80036d4 <charge_decode_source+0x8a>)
 80036cc:	f833 3012 	ldrh.w	r3, [r3, r2, lsl #1]
 80036d0:	e7d8      	b.n	8003684 <charge_decode_source+0x3a>
 80036d2:	bf00      	nop
 80036d4:	08004138 	.word	0x08004138

080036d8 <bq25798_encode_iindpm>:
 80036d8:	b909      	cbnz	r1, 80036de <bq25798_encode_iindpm+0x6>
 80036da:	2000      	movs	r0, #0
 80036dc:	4770      	bx	lr
 80036de:	2a00      	cmp	r2, #0
 80036e0:	d0fb      	beq.n	80036da <bq25798_encode_iindpm+0x2>
 80036e2:	f1a0 0364 	sub.w	r3, r0, #100	@ 0x64
 80036e6:	f5b3 6f48 	cmp.w	r3, #3200	@ 0xc80
 80036ea:	d8f6      	bhi.n	80036da <bq25798_encode_iindpm+0x2>
 80036ec:	230a      	movs	r3, #10
 80036ee:	fbb0 f0f3 	udiv	r0, r0, r3
 80036f2:	8008      	strh	r0, [r1, #0]
 80036f4:	eb00 0080 	add.w	r0, r0, r0, lsl #2
 80036f8:	0040      	lsls	r0, r0, #1
 80036fa:	8010      	strh	r0, [r2, #0]
 80036fc:	2001      	movs	r0, #1
 80036fe:	4770      	bx	lr

08003700 <charge_manager_step>:
 8003700:	e92d 41ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
 8003704:	4604      	mov	r4, r0
 8003706:	460e      	mov	r6, r1
 8003708:	4615      	mov	r5, r2
 800370a:	b97a      	cbnz	r2, 800372c <charge_manager_step+0x2c>
 800370c:	b130      	cbz	r0, 800371c <charge_manager_step+0x1c>
 800370e:	6843      	ldr	r3, [r0, #4]
 8003710:	b113      	cbz	r3, 8003718 <charge_manager_step+0x18>
 8003712:	6800      	ldr	r0, [r0, #0]
 8003714:	4611      	mov	r1, r2
 8003716:	4798      	blx	r3
 8003718:	6923      	ldr	r3, [r4, #16]
 800371a:	b91b      	cbnz	r3, 8003724 <charge_manager_step+0x24>
 800371c:	2008      	movs	r0, #8
 800371e:	b004      	add	sp, #16
 8003720:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 8003724:	6820      	ldr	r0, [r4, #0]
 8003726:	2101      	movs	r1, #1
 8003728:	4798      	blx	r3
 800372a:	e7f7      	b.n	800371c <charge_manager_step+0x1c>
 800372c:	b140      	cbz	r0, 8003740 <charge_manager_step+0x40>
 800372e:	6847      	ldr	r7, [r0, #4]
 8003730:	b137      	cbz	r7, 8003740 <charge_manager_step+0x40>
 8003732:	6883      	ldr	r3, [r0, #8]
 8003734:	b123      	cbz	r3, 8003740 <charge_manager_step+0x40>
 8003736:	68c3      	ldr	r3, [r0, #12]
 8003738:	b113      	cbz	r3, 8003740 <charge_manager_step+0x40>
 800373a:	6903      	ldr	r3, [r0, #16]
 800373c:	b103      	cbz	r3, 8003740 <charge_manager_step+0x40>
 800373e:	b931      	cbnz	r1, 800374e <charge_manager_step+0x4e>
 8003740:	2208      	movs	r2, #8
 8003742:	4629      	mov	r1, r5
 8003744:	4620      	mov	r0, r4
 8003746:	b004      	add	sp, #16
 8003748:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 800374c:	e752      	b.n	80035f4 <safe_off>
 800374e:	7a0b      	ldrb	r3, [r1, #8]
 8003750:	b12b      	cbz	r3, 800375e <charge_manager_step+0x5e>
 8003752:	7a4b      	ldrb	r3, [r1, #9]
 8003754:	b11b      	cbz	r3, 800375e <charge_manager_step+0x5e>
 8003756:	88cb      	ldrh	r3, [r1, #6]
 8003758:	f5b3 7ffa 	cmp.w	r3, #500	@ 0x1f4
 800375c:	d901      	bls.n	8003762 <charge_manager_step+0x62>
 800375e:	2207      	movs	r2, #7
 8003760:	e7ef      	b.n	8003742 <charge_manager_step+0x42>
 8003762:	7849      	ldrb	r1, [r1, #1]
 8003764:	f011 0240 	ands.w	r2, r1, #64	@ 0x40
 8003768:	d0eb      	beq.n	8003742 <charge_manager_step+0x42>
 800376a:	7ab3      	ldrb	r3, [r6, #10]
 800376c:	b90b      	cbnz	r3, 8003772 <charge_manager_step+0x72>
 800376e:	2205      	movs	r2, #5
 8003770:	e7e7      	b.n	8003742 <charge_manager_step+0x42>
 8003772:	7af3      	ldrb	r3, [r6, #11]
 8003774:	b90b      	cbnz	r3, 800377a <charge_manager_step+0x7a>
 8003776:	2206      	movs	r2, #6
 8003778:	e7e3      	b.n	8003742 <charge_manager_step+0x42>
 800377a:	2300      	movs	r3, #0
 800377c:	f896 8000 	ldrb.w	r8, [r6]
 8003780:	f8ad 3008 	strh.w	r3, [sp, #8]
 8003784:	f8ad 300a 	strh.w	r3, [sp, #10]
 8003788:	f10d 030a 	add.w	r3, sp, #10
 800378c:	9300      	str	r3, [sp, #0]
 800378e:	78b2      	ldrb	r2, [r6, #2]
 8003790:	ab02      	add	r3, sp, #8
 8003792:	4640      	mov	r0, r8
 8003794:	f7ff ff59 	bl	800364a <charge_decode_source>
 8003798:	b928      	cbnz	r0, 80037a6 <charge_manager_step+0xa6>
 800379a:	f1b8 0f2f 	cmp.w	r8, #47	@ 0x2f
 800379e:	bf94      	ite	ls
 80037a0:	2202      	movls	r2, #2
 80037a2:	2203      	movhi	r2, #3
 80037a4:	e7cd      	b.n	8003742 <charge_manager_step+0x42>
 80037a6:	f8bd 2008 	ldrh.w	r2, [sp, #8]
 80037aa:	f242 3328 	movw	r3, #9000	@ 0x2328
 80037ae:	429a      	cmp	r2, r3
 80037b0:	88b2      	ldrh	r2, [r6, #4]
 80037b2:	bf0b      	itete	eq
 80037b4:	f641 71a4 	movweq	r1, #8100	@ 0x1fa4
 80037b8:	f241 1130 	movwne	r1, #4400	@ 0x1130
 80037bc:	f242 63ac 	movweq	r3, #9900	@ 0x26ac
 80037c0:	f241 537c 	movwne	r3, #5500	@ 0x157c
 80037c4:	428a      	cmp	r2, r1
 80037c6:	d301      	bcc.n	80037cc <charge_manager_step+0xcc>
 80037c8:	429a      	cmp	r2, r3
 80037ca:	d901      	bls.n	80037d0 <charge_manager_step+0xd0>
 80037cc:	2204      	movs	r2, #4
 80037ce:	e7b8      	b.n	8003742 <charge_manager_step+0x42>
 80037d0:	f8bd 600a 	ldrh.w	r6, [sp, #10]
 80037d4:	2300      	movs	r3, #0
 80037d6:	f10d 020e 	add.w	r2, sp, #14
 80037da:	a903      	add	r1, sp, #12
 80037dc:	4630      	mov	r0, r6
 80037de:	f8ad 300e 	strh.w	r3, [sp, #14]
 80037e2:	f7ff ff79 	bl	80036d8 <bq25798_encode_iindpm>
 80037e6:	b908      	cbnz	r0, 80037ec <charge_manager_step+0xec>
 80037e8:	2202      	movs	r2, #2
 80037ea:	e7aa      	b.n	8003742 <charge_manager_step+0x42>
 80037ec:	786b      	ldrb	r3, [r5, #1]
 80037ee:	b16b      	cbz	r3, 800380c <charge_manager_step+0x10c>
 80037f0:	88aa      	ldrh	r2, [r5, #4]
 80037f2:	f8bd 300e 	ldrh.w	r3, [sp, #14]
 80037f6:	429a      	cmp	r2, r3
 80037f8:	d108      	bne.n	800380c <charge_manager_step+0x10c>
 80037fa:	88eb      	ldrh	r3, [r5, #6]
 80037fc:	f5b3 7f7a 	cmp.w	r3, #1000	@ 0x3e8
 8003800:	d104      	bne.n	800380c <charge_manager_step+0x10c>
 8003802:	2301      	movs	r3, #1
 8003804:	702b      	strb	r3, [r5, #0]
 8003806:	806e      	strh	r6, [r5, #2]
 8003808:	2001      	movs	r0, #1
 800380a:	e788      	b.n	800371e <charge_manager_step+0x1e>
 800380c:	6820      	ldr	r0, [r4, #0]
 800380e:	2100      	movs	r1, #0
 8003810:	47b8      	blx	r7
 8003812:	2800      	cmp	r0, #0
 8003814:	d0a3      	beq.n	800375e <charge_manager_step+0x5e>
 8003816:	6923      	ldr	r3, [r4, #16]
 8003818:	6820      	ldr	r0, [r4, #0]
 800381a:	2101      	movs	r1, #1
 800381c:	4798      	blx	r3
 800381e:	2800      	cmp	r0, #0
 8003820:	d09d      	beq.n	800375e <charge_manager_step+0x5e>
 8003822:	f8bd 700e 	ldrh.w	r7, [sp, #14]
 8003826:	68a3      	ldr	r3, [r4, #8]
 8003828:	6820      	ldr	r0, [r4, #0]
 800382a:	4639      	mov	r1, r7
 800382c:	4798      	blx	r3
 800382e:	2800      	cmp	r0, #0
 8003830:	d095      	beq.n	800375e <charge_manager_step+0x5e>
 8003832:	68e3      	ldr	r3, [r4, #12]
 8003834:	6820      	ldr	r0, [r4, #0]
 8003836:	f44f 717a 	mov.w	r1, #1000	@ 0x3e8
 800383a:	4798      	blx	r3
 800383c:	2800      	cmp	r0, #0
 800383e:	d08e      	beq.n	800375e <charge_manager_step+0x5e>
 8003840:	6923      	ldr	r3, [r4, #16]
 8003842:	6820      	ldr	r0, [r4, #0]
 8003844:	2100      	movs	r1, #0
 8003846:	4798      	blx	r3
 8003848:	2800      	cmp	r0, #0
 800384a:	d088      	beq.n	800375e <charge_manager_step+0x5e>
 800384c:	6863      	ldr	r3, [r4, #4]
 800384e:	6820      	ldr	r0, [r4, #0]
 8003850:	2101      	movs	r1, #1
 8003852:	4798      	blx	r3
 8003854:	2800      	cmp	r0, #0
 8003856:	d082      	beq.n	800375e <charge_manager_step+0x5e>
 8003858:	f240 1301 	movw	r3, #257	@ 0x101
 800385c:	802b      	strh	r3, [r5, #0]
 800385e:	f44f 737a 	mov.w	r3, #1000	@ 0x3e8
 8003862:	806e      	strh	r6, [r5, #2]
 8003864:	80af      	strh	r7, [r5, #4]
 8003866:	80eb      	strh	r3, [r5, #6]
 8003868:	e7ce      	b.n	8003808 <charge_manager_step+0x108>
 800386a:	bf00      	nop

0800386c <io_valid>:
 800386c:	b908      	cbnz	r0, 8003872 <io_valid+0x6>
 800386e:	2000      	movs	r0, #0
 8003870:	4770      	bx	lr
 8003872:	6843      	ldr	r3, [r0, #4]
 8003874:	2b00      	cmp	r3, #0
 8003876:	d0fa      	beq.n	800386e <io_valid+0x2>
 8003878:	6883      	ldr	r3, [r0, #8]
 800387a:	2b00      	cmp	r3, #0
 800387c:	d0f7      	beq.n	800386e <io_valid+0x2>
 800387e:	68c3      	ldr	r3, [r0, #12]
 8003880:	2b00      	cmp	r3, #0
 8003882:	d0f4      	beq.n	800386e <io_valid+0x2>
 8003884:	6900      	ldr	r0, [r0, #16]
 8003886:	3800      	subs	r0, #0
 8003888:	bf18      	it	ne
 800388a:	2001      	movne	r0, #1
 800388c:	4770      	bx	lr

0800388e <rd>:
 800388e:	b410      	push	{r4}
 8003890:	f89d 4004 	ldrb.w	r4, [sp, #4]
 8003894:	b128      	cbz	r0, 80038a2 <rd+0x14>
 8003896:	9401      	str	r4, [sp, #4]
 8003898:	e9d0 0400 	ldrd	r0, r4, [r0]
 800389c:	46a4      	mov	ip, r4
 800389e:	bc10      	pop	{r4}
 80038a0:	4760      	bx	ip
 80038a2:	bc10      	pop	{r4}
 80038a4:	4770      	bx	lr

080038a6 <read8>:
 80038a6:	b507      	push	{r0, r1, r2, lr}
 80038a8:	4613      	mov	r3, r2
 80038aa:	2201      	movs	r2, #1
 80038ac:	9200      	str	r2, [sp, #0]
 80038ae:	460a      	mov	r2, r1
 80038b0:	216b      	movs	r1, #107	@ 0x6b
 80038b2:	f7ff ffec 	bl	800388e <rd>
 80038b6:	b003      	add	sp, #12
 80038b8:	bd00      	pop	{pc}

080038ba <ce>:
 80038ba:	b110      	cbz	r0, 80038c2 <ce+0x8>
 80038bc:	68c3      	ldr	r3, [r0, #12]
 80038be:	6800      	ldr	r0, [r0, #0]
 80038c0:	4718      	bx	r3
 80038c2:	4770      	bx	lr

080038c4 <wr.constprop.0>:
 80038c4:	b513      	push	{r0, r1, r4, lr}
 80038c6:	b130      	cbz	r0, 80038d6 <wr.constprop.0+0x12>
 80038c8:	9300      	str	r3, [sp, #0]
 80038ca:	6884      	ldr	r4, [r0, #8]
 80038cc:	6800      	ldr	r0, [r0, #0]
 80038ce:	4613      	mov	r3, r2
 80038d0:	460a      	mov	r2, r1
 80038d2:	216b      	movs	r1, #107	@ 0x6b
 80038d4:	47a0      	blx	r4
 80038d6:	b002      	add	sp, #8
 80038d8:	bd10      	pop	{r4, pc}

080038da <write16_verify.constprop.0>:
 80038da:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
 80038dc:	ba53      	rev16	r3, r2
 80038de:	4614      	mov	r4, r2
 80038e0:	f8ad 3008 	strh.w	r3, [sp, #8]
 80038e4:	aa02      	add	r2, sp, #8
 80038e6:	2302      	movs	r3, #2
 80038e8:	4605      	mov	r5, r0
 80038ea:	460e      	mov	r6, r1
 80038ec:	f7ff ffea 	bl	80038c4 <wr.constprop.0>
 80038f0:	b190      	cbz	r0, 8003918 <write16_verify.constprop.0+0x3e>
 80038f2:	2302      	movs	r3, #2
 80038f4:	9300      	str	r3, [sp, #0]
 80038f6:	4632      	mov	r2, r6
 80038f8:	ab03      	add	r3, sp, #12
 80038fa:	216b      	movs	r1, #107	@ 0x6b
 80038fc:	4628      	mov	r0, r5
 80038fe:	f7ff ffc6 	bl	800388e <rd>
 8003902:	b148      	cbz	r0, 8003918 <write16_verify.constprop.0+0x3e>
 8003904:	f8bd 300c 	ldrh.w	r3, [sp, #12]
 8003908:	ba5b      	rev16	r3, r3
 800390a:	ea84 0003 	eor.w	r0, r4, r3
 800390e:	f3c0 0008 	ubfx	r0, r0, #0, #9
 8003912:	fab0 f080 	clz	r0, r0
 8003916:	0940      	lsrs	r0, r0, #5
 8003918:	b004      	add	sp, #16
 800391a:	bd70      	pop	{r4, r5, r6, pc}

0800391c <charge_limit>:
 800391c:	b178      	cbz	r0, 800393e <charge_limit+0x22>
 800391e:	f1a1 0332 	sub.w	r3, r1, #50	@ 0x32
 8003922:	b29b      	uxth	r3, r3
 8003924:	f241 3256 	movw	r2, #4950	@ 0x1356
 8003928:	4293      	cmp	r3, r2
 800392a:	d808      	bhi.n	800393e <charge_limit+0x22>
 800392c:	230a      	movs	r3, #10
 800392e:	fbb1 f2f3 	udiv	r2, r1, r3
 8003932:	fb03 1112 	mls	r1, r3, r2, r1
 8003936:	b289      	uxth	r1, r1
 8003938:	b909      	cbnz	r1, 800393e <charge_limit+0x22>
 800393a:	2103      	movs	r1, #3
 800393c:	e7cd      	b.n	80038da <write16_verify.constprop.0>
 800393e:	2000      	movs	r0, #0
 8003940:	4770      	bx	lr

08003942 <input_limit>:
 8003942:	b168      	cbz	r0, 8003960 <input_limit+0x1e>
 8003944:	f1a1 0364 	sub.w	r3, r1, #100	@ 0x64
 8003948:	f5b3 6f48 	cmp.w	r3, #3200	@ 0xc80
 800394c:	d808      	bhi.n	8003960 <input_limit+0x1e>
 800394e:	230a      	movs	r3, #10
 8003950:	fbb1 f2f3 	udiv	r2, r1, r3
 8003954:	fb03 1112 	mls	r1, r3, r2, r1
 8003958:	b289      	uxth	r1, r1
 800395a:	b909      	cbnz	r1, 8003960 <input_limit+0x1e>
 800395c:	2106      	movs	r1, #6
 800395e:	e7bc      	b.n	80038da <write16_verify.constprop.0>
 8003960:	2000      	movs	r0, #0
 8003962:	4770      	bx	lr

08003964 <write8_verify>:
 8003964:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
 8003966:	461c      	mov	r4, r3
 8003968:	2300      	movs	r3, #0
 800396a:	f88d 2007 	strb.w	r2, [sp, #7]
 800396e:	f88d 300f 	strb.w	r3, [sp, #15]
 8003972:	f10d 0207 	add.w	r2, sp, #7
 8003976:	2301      	movs	r3, #1
 8003978:	4605      	mov	r5, r0
 800397a:	460e      	mov	r6, r1
 800397c:	f7ff ffa2 	bl	80038c4 <wr.constprop.0>
 8003980:	b178      	cbz	r0, 80039a2 <write8_verify+0x3e>
 8003982:	f10d 020f 	add.w	r2, sp, #15
 8003986:	4631      	mov	r1, r6
 8003988:	4628      	mov	r0, r5
 800398a:	f7ff ff8c 	bl	80038a6 <read8>
 800398e:	b140      	cbz	r0, 80039a2 <write8_verify+0x3e>
 8003990:	f89d 300f 	ldrb.w	r3, [sp, #15]
 8003994:	f89d 2007 	ldrb.w	r2, [sp, #7]
 8003998:	4053      	eors	r3, r2
 800399a:	421c      	tst	r4, r3
 800399c:	bf0c      	ite	eq
 800399e:	2001      	moveq	r0, #1
 80039a0:	2000      	movne	r0, #0
 80039a2:	b004      	add	sp, #16
 80039a4:	bd70      	pop	{r4, r5, r6, pc}

080039a6 <ext_ilim>:
 80039a6:	b537      	push	{r0, r1, r2, r4, r5, lr}
 80039a8:	2300      	movs	r3, #0
 80039aa:	4604      	mov	r4, r0
 80039ac:	460d      	mov	r5, r1
 80039ae:	f88d 3007 	strb.w	r3, [sp, #7]
 80039b2:	b188      	cbz	r0, 80039d8 <ext_ilim+0x32>
 80039b4:	f10d 0207 	add.w	r2, sp, #7
 80039b8:	2114      	movs	r1, #20
 80039ba:	f7ff ff74 	bl	80038a6 <read8>
 80039be:	b158      	cbz	r0, 80039d8 <ext_ilim+0x32>
 80039c0:	f89d 2007 	ldrb.w	r2, [sp, #7]
 80039c4:	b155      	cbz	r5, 80039dc <ext_ilim+0x36>
 80039c6:	f042 0202 	orr.w	r2, r2, #2
 80039ca:	2302      	movs	r3, #2
 80039cc:	2114      	movs	r1, #20
 80039ce:	4620      	mov	r0, r4
 80039d0:	f88d 2007 	strb.w	r2, [sp, #7]
 80039d4:	f7ff ffc6 	bl	8003964 <write8_verify>
 80039d8:	b003      	add	sp, #12
 80039da:	bd30      	pop	{r4, r5, pc}
 80039dc:	f002 02fd 	and.w	r2, r2, #253	@ 0xfd
 80039e0:	e7f3      	b.n	80039ca <ext_ilim+0x24>

080039e2 <charge_registers_init>:
 80039e2:	b573      	push	{r0, r1, r4, r5, r6, lr}
 80039e4:	4604      	mov	r4, r0
 80039e6:	460d      	mov	r5, r1
 80039e8:	b910      	cbnz	r0, 80039f0 <charge_registers_init+0xe>
 80039ea:	2000      	movs	r0, #0
 80039ec:	b002      	add	sp, #8
 80039ee:	bd70      	pop	{r4, r5, r6, pc}
 80039f0:	4608      	mov	r0, r1
 80039f2:	f7ff ff3b 	bl	800386c <io_valid>
 80039f6:	2800      	cmp	r0, #0
 80039f8:	d0f8      	beq.n	80039ec <charge_registers_init+0xa>
 80039fa:	2214      	movs	r2, #20
 80039fc:	2100      	movs	r1, #0
 80039fe:	4620      	mov	r0, r4
 8003a00:	f7fc fd6d 	bl	80004de <memset>
 8003a04:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8003a06:	4626      	mov	r6, r4
 8003a08:	c60f      	stmia	r6!, {r0, r1, r2, r3}
 8003a0a:	682b      	ldr	r3, [r5, #0]
 8003a0c:	6033      	str	r3, [r6, #0]
 8003a0e:	6820      	ldr	r0, [r4, #0]
 8003a10:	68e3      	ldr	r3, [r4, #12]
 8003a12:	2100      	movs	r1, #0
 8003a14:	4798      	blx	r3
 8003a16:	2800      	cmp	r0, #0
 8003a18:	d0e8      	beq.n	80039ec <charge_registers_init+0xa>
 8003a1a:	2500      	movs	r5, #0
 8003a1c:	f10d 0205 	add.w	r2, sp, #5
 8003a20:	2109      	movs	r1, #9
 8003a22:	4620      	mov	r0, r4
 8003a24:	f88d 5005 	strb.w	r5, [sp, #5]
 8003a28:	f7ff ff3d 	bl	80038a6 <read8>
 8003a2c:	2800      	cmp	r0, #0
 8003a2e:	d0dd      	beq.n	80039ec <charge_registers_init+0xa>
 8003a30:	f89d 2005 	ldrb.w	r2, [sp, #5]
 8003a34:	2320      	movs	r3, #32
 8003a36:	f042 0220 	orr.w	r2, r2, #32
 8003a3a:	2109      	movs	r1, #9
 8003a3c:	4620      	mov	r0, r4
 8003a3e:	f88d 2005 	strb.w	r2, [sp, #5]
 8003a42:	f7ff ff8f 	bl	8003964 <write8_verify>
 8003a46:	2800      	cmp	r0, #0
 8003a48:	d0d0      	beq.n	80039ec <charge_registers_init+0xa>
 8003a4a:	f10d 0206 	add.w	r2, sp, #6
 8003a4e:	2110      	movs	r1, #16
 8003a50:	4620      	mov	r0, r4
 8003a52:	f88d 5006 	strb.w	r5, [sp, #6]
 8003a56:	f7ff ff26 	bl	80038a6 <read8>
 8003a5a:	2800      	cmp	r0, #0
 8003a5c:	d0c6      	beq.n	80039ec <charge_registers_init+0xa>
 8003a5e:	f89d 3006 	ldrb.w	r3, [sp, #6]
 8003a62:	f023 030f 	bic.w	r3, r3, #15
 8003a66:	f043 030d 	orr.w	r3, r3, #13
 8003a6a:	f88d 3006 	strb.w	r3, [sp, #6]
 8003a6e:	f10d 0206 	add.w	r2, sp, #6
 8003a72:	2301      	movs	r3, #1
 8003a74:	2110      	movs	r1, #16
 8003a76:	4620      	mov	r0, r4
 8003a78:	f7ff ff24 	bl	80038c4 <wr.constprop.0>
 8003a7c:	2800      	cmp	r0, #0
 8003a7e:	d0b5      	beq.n	80039ec <charge_registers_init+0xa>
 8003a80:	f10d 0206 	add.w	r2, sp, #6
 8003a84:	2110      	movs	r1, #16
 8003a86:	4620      	mov	r0, r4
 8003a88:	f7ff ff0d 	bl	80038a6 <read8>
 8003a8c:	2800      	cmp	r0, #0
 8003a8e:	d0ad      	beq.n	80039ec <charge_registers_init+0xa>
 8003a90:	f89d 3006 	ldrb.w	r3, [sp, #6]
 8003a94:	f003 030f 	and.w	r3, r3, #15
 8003a98:	2b05      	cmp	r3, #5
 8003a9a:	d1a6      	bne.n	80039ea <charge_registers_init+0x8>
 8003a9c:	f10d 0207 	add.w	r2, sp, #7
 8003aa0:	212e      	movs	r1, #46	@ 0x2e
 8003aa2:	4620      	mov	r0, r4
 8003aa4:	f88d 5007 	strb.w	r5, [sp, #7]
 8003aa8:	f7ff fefd 	bl	80038a6 <read8>
 8003aac:	2800      	cmp	r0, #0
 8003aae:	d09d      	beq.n	80039ec <charge_registers_init+0xa>
 8003ab0:	f89d 2007 	ldrb.w	r2, [sp, #7]
 8003ab4:	f002 020f 	and.w	r2, r2, #15
 8003ab8:	f042 0280 	orr.w	r2, r2, #128	@ 0x80
 8003abc:	23f0      	movs	r3, #240	@ 0xf0
 8003abe:	212e      	movs	r1, #46	@ 0x2e
 8003ac0:	4620      	mov	r0, r4
 8003ac2:	f88d 2007 	strb.w	r2, [sp, #7]
 8003ac6:	f7ff ff4d 	bl	8003964 <write8_verify>
 8003aca:	e78f      	b.n	80039ec <charge_registers_init+0xa>

08003acc <charge_registers_kick_watchdog>:
 8003acc:	b513      	push	{r0, r1, r4, lr}
 8003ace:	2300      	movs	r3, #0
 8003ad0:	f10d 0207 	add.w	r2, sp, #7
 8003ad4:	2110      	movs	r1, #16
 8003ad6:	4604      	mov	r4, r0
 8003ad8:	f88d 3007 	strb.w	r3, [sp, #7]
 8003adc:	f7ff fee3 	bl	80038a6 <read8>
 8003ae0:	b1d8      	cbz	r0, 8003b1a <charge_registers_kick_watchdog+0x4e>
 8003ae2:	f89d 3007 	ldrb.w	r3, [sp, #7]
 8003ae6:	f043 0308 	orr.w	r3, r3, #8
 8003aea:	f88d 3007 	strb.w	r3, [sp, #7]
 8003aee:	f10d 0207 	add.w	r2, sp, #7
 8003af2:	2301      	movs	r3, #1
 8003af4:	2110      	movs	r1, #16
 8003af6:	4620      	mov	r0, r4
 8003af8:	f7ff fee4 	bl	80038c4 <wr.constprop.0>
 8003afc:	b168      	cbz	r0, 8003b1a <charge_registers_kick_watchdog+0x4e>
 8003afe:	f10d 0207 	add.w	r2, sp, #7
 8003b02:	2110      	movs	r1, #16
 8003b04:	4620      	mov	r0, r4
 8003b06:	f7ff fece 	bl	80038a6 <read8>
 8003b0a:	b130      	cbz	r0, 8003b1a <charge_registers_kick_watchdog+0x4e>
 8003b0c:	f89d 0007 	ldrb.w	r0, [sp, #7]
 8003b10:	f000 000f 	and.w	r0, r0, #15
 8003b14:	1f43      	subs	r3, r0, #5
 8003b16:	4258      	negs	r0, r3
 8003b18:	4158      	adcs	r0, r3
 8003b1a:	b002      	add	sp, #8
 8003b1c:	bd10      	pop	{r4, pc}

08003b1e <charge_registers_observe>:
 8003b1e:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 8003b22:	4605      	mov	r5, r0
 8003b24:	b088      	sub	sp, #32
 8003b26:	460c      	mov	r4, r1
 8003b28:	b918      	cbnz	r0, 8003b32 <charge_registers_observe+0x14>
 8003b2a:	2000      	movs	r0, #0
 8003b2c:	b008      	add	sp, #32
 8003b2e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 8003b32:	2900      	cmp	r1, #0
 8003b34:	d0f9      	beq.n	8003b2a <charge_registers_observe+0xc>
 8003b36:	f7ff fe99 	bl	800386c <io_valid>
 8003b3a:	2800      	cmp	r0, #0
 8003b3c:	d0f6      	beq.n	8003b2c <charge_registers_observe+0xe>
 8003b3e:	220c      	movs	r2, #12
 8003b40:	2100      	movs	r1, #0
 8003b42:	4620      	mov	r0, r4
 8003b44:	f7fc fccb 	bl	80004de <memset>
 8003b48:	692b      	ldr	r3, [r5, #16]
 8003b4a:	6828      	ldr	r0, [r5, #0]
 8003b4c:	4798      	blx	r3
 8003b4e:	2303      	movs	r3, #3
 8003b50:	2200      	movs	r2, #0
 8003b52:	9300      	str	r3, [sp, #0]
 8003b54:	4606      	mov	r6, r0
 8003b56:	ab05      	add	r3, sp, #20
 8003b58:	2108      	movs	r1, #8
 8003b5a:	4628      	mov	r0, r5
 8003b5c:	f8ad 2014 	strh.w	r2, [sp, #20]
 8003b60:	f88d 2016 	strb.w	r2, [sp, #22]
 8003b64:	f7ff fe93 	bl	800388e <rd>
 8003b68:	7220      	strb	r0, [r4, #8]
 8003b6a:	b128      	cbz	r0, 8003b78 <charge_registers_observe+0x5a>
 8003b6c:	f89d 3016 	ldrb.w	r3, [sp, #22]
 8003b70:	f8bd 2014 	ldrh.w	r2, [sp, #20]
 8003b74:	8022      	strh	r2, [r4, #0]
 8003b76:	70a3      	strb	r3, [r4, #2]
 8003b78:	2300      	movs	r3, #0
 8003b7a:	9306      	str	r3, [sp, #24]
 8003b7c:	f88d 300e 	strb.w	r3, [sp, #14]
 8003b80:	f8cd 301b 	str.w	r3, [sp, #27]
 8003b84:	f88d 300f 	strb.w	r3, [sp, #15]
 8003b88:	f8ad 3010 	strh.w	r3, [sp, #16]
 8003b8c:	2307      	movs	r3, #7
 8003b8e:	9300      	str	r3, [sp, #0]
 8003b90:	221b      	movs	r2, #27
 8003b92:	ab06      	add	r3, sp, #24
 8003b94:	216b      	movs	r1, #107	@ 0x6b
 8003b96:	4628      	mov	r0, r5
 8003b98:	f7ff fe79 	bl	800388e <rd>
 8003b9c:	f04f 0801 	mov.w	r8, #1
 8003ba0:	f10d 030e 	add.w	r3, sp, #14
 8003ba4:	2218      	movs	r2, #24
 8003ba6:	216b      	movs	r1, #107	@ 0x6b
 8003ba8:	4682      	mov	sl, r0
 8003baa:	f8cd 8000 	str.w	r8, [sp]
 8003bae:	4628      	mov	r0, r5
 8003bb0:	f7ff fe6d 	bl	800388e <rd>
 8003bb4:	f10d 020f 	add.w	r2, sp, #15
 8003bb8:	212e      	movs	r1, #46	@ 0x2e
 8003bba:	4607      	mov	r7, r0
 8003bbc:	4628      	mov	r0, r5
 8003bbe:	f7ff fe72 	bl	80038a6 <read8>
 8003bc2:	2302      	movs	r3, #2
 8003bc4:	4681      	mov	r9, r0
 8003bc6:	9300      	str	r3, [sp, #0]
 8003bc8:	2235      	movs	r2, #53	@ 0x35
 8003bca:	ab04      	add	r3, sp, #16
 8003bcc:	216b      	movs	r1, #107	@ 0x6b
 8003bce:	4628      	mov	r0, r5
 8003bd0:	f7ff fe5d 	bl	800388e <rd>
 8003bd4:	b380      	cbz	r0, 8003c38 <charge_registers_observe+0x11a>
 8003bd6:	ea07 070a 	and.w	r7, r7, sl
 8003bda:	b2ff      	uxtb	r7, r7
 8003bdc:	b367      	cbz	r7, 8003c38 <charge_registers_observe+0x11a>
 8003bde:	f1b9 0f00 	cmp.w	r9, #0
 8003be2:	d029      	beq.n	8003c38 <charge_registers_observe+0x11a>
 8003be4:	f8bd e010 	ldrh.w	lr, [sp, #16]
 8003be8:	f89d 2018 	ldrb.w	r2, [sp, #24]
 8003bec:	f89d 301b 	ldrb.w	r3, [sp, #27]
 8003bf0:	f89d 701d 	ldrb.w	r7, [sp, #29]
 8003bf4:	f89d 001e 	ldrb.w	r0, [sp, #30]
 8003bf8:	f89d c01a 	ldrb.w	ip, [sp, #26]
 8003bfc:	f89d 101c 	ldrb.w	r1, [sp, #28]
 8003c00:	f884 8009 	strb.w	r8, [r4, #9]
 8003c04:	fa9e fe9e 	rev16.w	lr, lr
 8003c08:	f8a4 e004 	strh.w	lr, [r4, #4]
 8003c0c:	f003 030e 	and.w	r3, r3, #14
 8003c10:	f002 0e20 	and.w	lr, r2, #32
 8003c14:	ea43 030e 	orr.w	r3, r3, lr
 8003c18:	f007 077f 	and.w	r7, r7, #127	@ 0x7f
 8003c1c:	433b      	orrs	r3, r7
 8003c1e:	f020 000b 	bic.w	r0, r0, #11
 8003c22:	4303      	orrs	r3, r0
 8003c24:	bf0c      	ite	eq
 8003c26:	4643      	moveq	r3, r8
 8003c28:	2300      	movne	r3, #0
 8003c2a:	f01c 0f01 	tst.w	ip, #1
 8003c2e:	72e3      	strb	r3, [r4, #11]
 8003c30:	d114      	bne.n	8003c5c <charge_registers_observe+0x13e>
 8003c32:	2300      	movs	r3, #0
 8003c34:	72a3      	strb	r3, [r4, #10]
 8003c36:	e001      	b.n	8003c3c <charge_registers_observe+0x11e>
 8003c38:	2300      	movs	r3, #0
 8003c3a:	7263      	strb	r3, [r4, #9]
 8003c3c:	692b      	ldr	r3, [r5, #16]
 8003c3e:	6828      	ldr	r0, [r5, #0]
 8003c40:	4798      	blx	r3
 8003c42:	f64f 73ff 	movw	r3, #65535	@ 0xffff
 8003c46:	1b80      	subs	r0, r0, r6
 8003c48:	4298      	cmp	r0, r3
 8003c4a:	bf28      	it	cs
 8003c4c:	4618      	movcs	r0, r3
 8003c4e:	80e0      	strh	r0, [r4, #6]
 8003c50:	7a20      	ldrb	r0, [r4, #8]
 8003c52:	2800      	cmp	r0, #0
 8003c54:	f43f af6a 	beq.w	8003b2c <charge_registers_observe+0xe>
 8003c58:	7a60      	ldrb	r0, [r4, #9]
 8003c5a:	e767      	b.n	8003b2c <charge_registers_observe+0xe>
 8003c5c:	f89d 300e 	ldrb.w	r3, [sp, #14]
 8003c60:	f001 010f 	and.w	r1, r1, #15
 8003c64:	f003 0301 	and.w	r3, r3, #1
 8003c68:	430b      	orrs	r3, r1
 8003c6a:	d1e2      	bne.n	8003c32 <charge_registers_observe+0x114>
 8003c6c:	f99d 300f 	ldrsb.w	r3, [sp, #15]
 8003c70:	2b00      	cmp	r3, #0
 8003c72:	dade      	bge.n	8003c32 <charge_registers_observe+0x114>
 8003c74:	f002 0301 	and.w	r3, r2, #1
 8003c78:	e7dc      	b.n	8003c34 <charge_registers_observe+0x116>

08003c7a <charge_registers_make_hal>:
 8003c7a:	4b05      	ldr	r3, [pc, #20]	@ (8003c90 <charge_registers_make_hal+0x16>)
 8003c7c:	6043      	str	r3, [r0, #4]
 8003c7e:	4b05      	ldr	r3, [pc, #20]	@ (8003c94 <charge_registers_make_hal+0x1a>)
 8003c80:	6083      	str	r3, [r0, #8]
 8003c82:	4b05      	ldr	r3, [pc, #20]	@ (8003c98 <charge_registers_make_hal+0x1e>)
 8003c84:	60c3      	str	r3, [r0, #12]
 8003c86:	4b05      	ldr	r3, [pc, #20]	@ (8003c9c <charge_registers_make_hal+0x22>)
 8003c88:	6001      	str	r1, [r0, #0]
 8003c8a:	6103      	str	r3, [r0, #16]
 8003c8c:	4770      	bx	lr
 8003c8e:	bf00      	nop
 8003c90:	080038bb 	.word	0x080038bb
 8003c94:	08003943 	.word	0x08003943
 8003c98:	0800391d 	.word	0x0800391d
 8003c9c:	080039a7 	.word	0x080039a7

08003ca0 <__aeabi_ldivmod>:
 8003ca0:	b97b      	cbnz	r3, 8003cc2 <__aeabi_ldivmod+0x22>
 8003ca2:	b972      	cbnz	r2, 8003cc2 <__aeabi_ldivmod+0x22>
 8003ca4:	2900      	cmp	r1, #0
 8003ca6:	bfbe      	ittt	lt
 8003ca8:	2000      	movlt	r0, #0
 8003caa:	f04f 4100 	movlt.w	r1, #2147483648	@ 0x80000000
 8003cae:	e006      	blt.n	8003cbe <__aeabi_ldivmod+0x1e>
 8003cb0:	bf08      	it	eq
 8003cb2:	2800      	cmpeq	r0, #0
 8003cb4:	bf1c      	itt	ne
 8003cb6:	f06f 4100 	mvnne.w	r1, #2147483648	@ 0x80000000
 8003cba:	f04f 30ff 	movne.w	r0, #4294967295	@ 0xffffffff
 8003cbe:	f7fc bc2a 	b.w	8000516 <__aeabi_ldiv0>
 8003cc2:	f1ad 0c08 	sub.w	ip, sp, #8
 8003cc6:	e96d ce04 	strd	ip, lr, [sp, #-16]!
 8003cca:	2900      	cmp	r1, #0
 8003ccc:	db09      	blt.n	8003ce2 <__aeabi_ldivmod+0x42>
 8003cce:	2b00      	cmp	r3, #0
 8003cd0:	db1a      	blt.n	8003d08 <__aeabi_ldivmod+0x68>
 8003cd2:	f000 f84d 	bl	8003d70 <__udivmoddi4>
 8003cd6:	f8dd e004 	ldr.w	lr, [sp, #4]
 8003cda:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
 8003cde:	b004      	add	sp, #16
 8003ce0:	4770      	bx	lr
 8003ce2:	4240      	negs	r0, r0
 8003ce4:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 8003ce8:	2b00      	cmp	r3, #0
 8003cea:	db1b      	blt.n	8003d24 <__aeabi_ldivmod+0x84>
 8003cec:	f000 f840 	bl	8003d70 <__udivmoddi4>
 8003cf0:	f8dd e004 	ldr.w	lr, [sp, #4]
 8003cf4:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
 8003cf8:	b004      	add	sp, #16
 8003cfa:	4240      	negs	r0, r0
 8003cfc:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 8003d00:	4252      	negs	r2, r2
 8003d02:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
 8003d06:	4770      	bx	lr
 8003d08:	4252      	negs	r2, r2
 8003d0a:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
 8003d0e:	f000 f82f 	bl	8003d70 <__udivmoddi4>
 8003d12:	f8dd e004 	ldr.w	lr, [sp, #4]
 8003d16:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
 8003d1a:	b004      	add	sp, #16
 8003d1c:	4240      	negs	r0, r0
 8003d1e:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 8003d22:	4770      	bx	lr
 8003d24:	4252      	negs	r2, r2
 8003d26:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
 8003d2a:	f000 f821 	bl	8003d70 <__udivmoddi4>
 8003d2e:	f8dd e004 	ldr.w	lr, [sp, #4]
 8003d32:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
 8003d36:	b004      	add	sp, #16
 8003d38:	4252      	negs	r2, r2
 8003d3a:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
 8003d3e:	4770      	bx	lr

08003d40 <__aeabi_uldivmod>:
 8003d40:	b953      	cbnz	r3, 8003d58 <__aeabi_uldivmod+0x18>
 8003d42:	b94a      	cbnz	r2, 8003d58 <__aeabi_uldivmod+0x18>
 8003d44:	2900      	cmp	r1, #0
 8003d46:	bf08      	it	eq
 8003d48:	2800      	cmpeq	r0, #0
 8003d4a:	bf1c      	itt	ne
 8003d4c:	f04f 31ff 	movne.w	r1, #4294967295	@ 0xffffffff
 8003d50:	f04f 30ff 	movne.w	r0, #4294967295	@ 0xffffffff
 8003d54:	f7fc bbdf 	b.w	8000516 <__aeabi_ldiv0>
 8003d58:	f1ad 0c08 	sub.w	ip, sp, #8
 8003d5c:	e96d ce04 	strd	ip, lr, [sp, #-16]!
 8003d60:	f000 f806 	bl	8003d70 <__udivmoddi4>
 8003d64:	f8dd e004 	ldr.w	lr, [sp, #4]
 8003d68:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
 8003d6c:	b004      	add	sp, #16
 8003d6e:	4770      	bx	lr

08003d70 <__udivmoddi4>:
 8003d70:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 8003d74:	4606      	mov	r6, r0
 8003d76:	f8dd e020 	ldr.w	lr, [sp, #32]
 8003d7a:	4608      	mov	r0, r1
 8003d7c:	46b4      	mov	ip, r6
 8003d7e:	2b00      	cmp	r3, #0
 8003d80:	d155      	bne.n	8003e2e <__udivmoddi4+0xbe>
 8003d82:	428a      	cmp	r2, r1
 8003d84:	4615      	mov	r5, r2
 8003d86:	d974      	bls.n	8003e72 <__udivmoddi4+0x102>
 8003d88:	fab2 f482 	clz	r4, r2
 8003d8c:	429c      	cmp	r4, r3
 8003d8e:	f1c4 0220 	rsb	r2, r4, #32
 8003d92:	fa05 f304 	lsl.w	r3, r5, r4
 8003d96:	bf18      	it	ne
 8003d98:	461d      	movne	r5, r3
 8003d9a:	fa26 f202 	lsr.w	r2, r6, r2
 8003d9e:	fa01 f304 	lsl.w	r3, r1, r4
 8003da2:	ea42 0203 	orr.w	r2, r2, r3
 8003da6:	fa06 f304 	lsl.w	r3, r6, r4
 8003daa:	bf0c      	ite	eq
 8003dac:	460a      	moveq	r2, r1
 8003dae:	469c      	movne	ip, r3
 8003db0:	0c2e      	lsrs	r6, r5, #16
 8003db2:	b2af      	uxth	r7, r5
 8003db4:	fbb2 f1f6 	udiv	r1, r2, r6
 8003db8:	ea4f 431c 	mov.w	r3, ip, lsr #16
 8003dbc:	fb06 2211 	mls	r2, r6, r1, r2
 8003dc0:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
 8003dc4:	fb01 f207 	mul.w	r2, r1, r7
 8003dc8:	429a      	cmp	r2, r3
 8003dca:	d909      	bls.n	8003de0 <__udivmoddi4+0x70>
 8003dcc:	18eb      	adds	r3, r5, r3
 8003dce:	f101 30ff 	add.w	r0, r1, #4294967295	@ 0xffffffff
 8003dd2:	f080 8102 	bcs.w	8003fda <__udivmoddi4+0x26a>
 8003dd6:	429a      	cmp	r2, r3
 8003dd8:	f240 80ff 	bls.w	8003fda <__udivmoddi4+0x26a>
 8003ddc:	3902      	subs	r1, #2
 8003dde:	442b      	add	r3, r5
 8003de0:	1a9b      	subs	r3, r3, r2
 8003de2:	fa1f fc8c 	uxth.w	ip, ip
 8003de6:	fbb3 f0f6 	udiv	r0, r3, r6
 8003dea:	fb06 3310 	mls	r3, r6, r0, r3
 8003dee:	ea4c 4c03 	orr.w	ip, ip, r3, lsl #16
 8003df2:	fb00 f307 	mul.w	r3, r0, r7
 8003df6:	4563      	cmp	r3, ip
 8003df8:	d90a      	bls.n	8003e10 <__udivmoddi4+0xa0>
 8003dfa:	eb15 0c0c 	adds.w	ip, r5, ip
 8003dfe:	f100 32ff 	add.w	r2, r0, #4294967295	@ 0xffffffff
 8003e02:	f080 80e8 	bcs.w	8003fd6 <__udivmoddi4+0x266>
 8003e06:	4563      	cmp	r3, ip
 8003e08:	f240 80e5 	bls.w	8003fd6 <__udivmoddi4+0x266>
 8003e0c:	44ac      	add	ip, r5
 8003e0e:	3802      	subs	r0, #2
 8003e10:	ea40 4001 	orr.w	r0, r0, r1, lsl #16
 8003e14:	ebac 0c03 	sub.w	ip, ip, r3
 8003e18:	2100      	movs	r1, #0
 8003e1a:	f1be 0f00 	cmp.w	lr, #0
 8003e1e:	d004      	beq.n	8003e2a <__udivmoddi4+0xba>
 8003e20:	fa2c f404 	lsr.w	r4, ip, r4
 8003e24:	2200      	movs	r2, #0
 8003e26:	e9ce 4200 	strd	r4, r2, [lr]
 8003e2a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 8003e2e:	428b      	cmp	r3, r1
 8003e30:	d908      	bls.n	8003e44 <__udivmoddi4+0xd4>
 8003e32:	f1be 0f00 	cmp.w	lr, #0
 8003e36:	d001      	beq.n	8003e3c <__udivmoddi4+0xcc>
 8003e38:	e9ce 6100 	strd	r6, r1, [lr]
 8003e3c:	2100      	movs	r1, #0
 8003e3e:	4608      	mov	r0, r1
 8003e40:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 8003e44:	4617      	mov	r7, r2
 8003e46:	460a      	mov	r2, r1
 8003e48:	fab3 f183 	clz	r1, r3
 8003e4c:	2900      	cmp	r1, #0
 8003e4e:	d14c      	bne.n	8003eea <__udivmoddi4+0x17a>
 8003e50:	4283      	cmp	r3, r0
 8003e52:	d302      	bcc.n	8003e5a <__udivmoddi4+0xea>
 8003e54:	42b7      	cmp	r7, r6
 8003e56:	f200 810e 	bhi.w	8004076 <__udivmoddi4+0x306>
 8003e5a:	ebb6 0c07 	subs.w	ip, r6, r7
 8003e5e:	eb60 0303 	sbc.w	r3, r0, r3
 8003e62:	2001      	movs	r0, #1
 8003e64:	461a      	mov	r2, r3
 8003e66:	f1be 0f00 	cmp.w	lr, #0
 8003e6a:	d0de      	beq.n	8003e2a <__udivmoddi4+0xba>
 8003e6c:	e9ce c200 	strd	ip, r2, [lr]
 8003e70:	e7db      	b.n	8003e2a <__udivmoddi4+0xba>
 8003e72:	2a00      	cmp	r2, #0
 8003e74:	f000 8096 	beq.w	8003fa4 <__udivmoddi4+0x234>
 8003e78:	461c      	mov	r4, r3
 8003e7a:	fab2 f382 	clz	r3, r2
 8003e7e:	2b00      	cmp	r3, #0
 8003e80:	f040 80ad 	bne.w	8003fde <__udivmoddi4+0x26e>
 8003e84:	1a8b      	subs	r3, r1, r2
 8003e86:	0c16      	lsrs	r6, r2, #16
 8003e88:	b290      	uxth	r0, r2
 8003e8a:	2101      	movs	r1, #1
 8003e8c:	fbb3 f2f6 	udiv	r2, r3, r6
 8003e90:	fb06 3712 	mls	r7, r6, r2, r3
 8003e94:	ea4f 431c 	mov.w	r3, ip, lsr #16
 8003e98:	ea43 4307 	orr.w	r3, r3, r7, lsl #16
 8003e9c:	fb00 f702 	mul.w	r7, r0, r2
 8003ea0:	429f      	cmp	r7, r3
 8003ea2:	d907      	bls.n	8003eb4 <__udivmoddi4+0x144>
 8003ea4:	18eb      	adds	r3, r5, r3
 8003ea6:	f102 38ff 	add.w	r8, r2, #4294967295	@ 0xffffffff
 8003eaa:	d202      	bcs.n	8003eb2 <__udivmoddi4+0x142>
 8003eac:	429f      	cmp	r7, r3
 8003eae:	f200 80e7 	bhi.w	8004080 <__udivmoddi4+0x310>
 8003eb2:	4642      	mov	r2, r8
 8003eb4:	1bdb      	subs	r3, r3, r7
 8003eb6:	fa1f fc8c 	uxth.w	ip, ip
 8003eba:	fbb3 f7f6 	udiv	r7, r3, r6
 8003ebe:	fb06 3317 	mls	r3, r6, r7, r3
 8003ec2:	ea4c 4c03 	orr.w	ip, ip, r3, lsl #16
 8003ec6:	fb07 f000 	mul.w	r0, r7, r0
 8003eca:	4560      	cmp	r0, ip
 8003ecc:	d908      	bls.n	8003ee0 <__udivmoddi4+0x170>
 8003ece:	eb15 0c0c 	adds.w	ip, r5, ip
 8003ed2:	f107 33ff 	add.w	r3, r7, #4294967295	@ 0xffffffff
 8003ed6:	d202      	bcs.n	8003ede <__udivmoddi4+0x16e>
 8003ed8:	4560      	cmp	r0, ip
 8003eda:	f200 80ce 	bhi.w	800407a <__udivmoddi4+0x30a>
 8003ede:	461f      	mov	r7, r3
 8003ee0:	ebac 0c00 	sub.w	ip, ip, r0
 8003ee4:	ea47 4002 	orr.w	r0, r7, r2, lsl #16
 8003ee8:	e797      	b.n	8003e1a <__udivmoddi4+0xaa>
 8003eea:	f1c1 0520 	rsb	r5, r1, #32
 8003eee:	408b      	lsls	r3, r1
 8003ef0:	fa27 fc05 	lsr.w	ip, r7, r5
 8003ef4:	ea4c 0c03 	orr.w	ip, ip, r3
 8003ef8:	fa00 f401 	lsl.w	r4, r0, r1
 8003efc:	fa26 f305 	lsr.w	r3, r6, r5
 8003f00:	40e8      	lsrs	r0, r5
 8003f02:	ea4f 421c 	mov.w	r2, ip, lsr #16
 8003f06:	4323      	orrs	r3, r4
 8003f08:	fa07 f901 	lsl.w	r9, r7, r1
 8003f0c:	fa06 fa01 	lsl.w	sl, r6, r1
 8003f10:	fbb0 f7f2 	udiv	r7, r0, r2
 8003f14:	fa1f f68c 	uxth.w	r6, ip
 8003f18:	fb02 0017 	mls	r0, r2, r7, r0
 8003f1c:	0c1c      	lsrs	r4, r3, #16
 8003f1e:	ea44 4400 	orr.w	r4, r4, r0, lsl #16
 8003f22:	fb07 f006 	mul.w	r0, r7, r6
 8003f26:	42a0      	cmp	r0, r4
 8003f28:	d90a      	bls.n	8003f40 <__udivmoddi4+0x1d0>
 8003f2a:	eb1c 0404 	adds.w	r4, ip, r4
 8003f2e:	f107 38ff 	add.w	r8, r7, #4294967295	@ 0xffffffff
 8003f32:	f080 809e 	bcs.w	8004072 <__udivmoddi4+0x302>
 8003f36:	42a0      	cmp	r0, r4
 8003f38:	f240 809b 	bls.w	8004072 <__udivmoddi4+0x302>
 8003f3c:	3f02      	subs	r7, #2
 8003f3e:	4464      	add	r4, ip
 8003f40:	1a24      	subs	r4, r4, r0
 8003f42:	b29b      	uxth	r3, r3
 8003f44:	fbb4 f0f2 	udiv	r0, r4, r2
 8003f48:	fb02 4410 	mls	r4, r2, r0, r4
 8003f4c:	ea43 4304 	orr.w	r3, r3, r4, lsl #16
 8003f50:	fb00 f606 	mul.w	r6, r0, r6
 8003f54:	429e      	cmp	r6, r3
 8003f56:	d90a      	bls.n	8003f6e <__udivmoddi4+0x1fe>
 8003f58:	eb1c 0303 	adds.w	r3, ip, r3
 8003f5c:	f100 34ff 	add.w	r4, r0, #4294967295	@ 0xffffffff
 8003f60:	f080 8085 	bcs.w	800406e <__udivmoddi4+0x2fe>
 8003f64:	429e      	cmp	r6, r3
 8003f66:	f240 8082 	bls.w	800406e <__udivmoddi4+0x2fe>
 8003f6a:	3802      	subs	r0, #2
 8003f6c:	4463      	add	r3, ip
 8003f6e:	ea40 4007 	orr.w	r0, r0, r7, lsl #16
 8003f72:	fba0 7409 	umull	r7, r4, r0, r9
 8003f76:	1b9b      	subs	r3, r3, r6
 8003f78:	42a3      	cmp	r3, r4
 8003f7a:	463e      	mov	r6, r7
 8003f7c:	46a0      	mov	r8, r4
 8003f7e:	d367      	bcc.n	8004050 <__udivmoddi4+0x2e0>
 8003f80:	d064      	beq.n	800404c <__udivmoddi4+0x2dc>
 8003f82:	f1be 0f00 	cmp.w	lr, #0
 8003f86:	d00a      	beq.n	8003f9e <__udivmoddi4+0x22e>
 8003f88:	ebba 0206 	subs.w	r2, sl, r6
 8003f8c:	eb63 0308 	sbc.w	r3, r3, r8
 8003f90:	fa03 f505 	lsl.w	r5, r3, r5
 8003f94:	40ca      	lsrs	r2, r1
 8003f96:	4315      	orrs	r5, r2
 8003f98:	40cb      	lsrs	r3, r1
 8003f9a:	e9ce 5300 	strd	r5, r3, [lr]
 8003f9e:	2100      	movs	r1, #0
 8003fa0:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 8003fa4:	0873      	lsrs	r3, r6, #1
 8003fa6:	ea43 73c0 	orr.w	r3, r3, r0, lsl #31
 8003faa:	0849      	lsrs	r1, r1, #1
 8003fac:	0c1a      	lsrs	r2, r3, #16
 8003fae:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
 8003fb2:	ea4f 7cc6 	mov.w	ip, r6, lsl #31
 8003fb6:	b29b      	uxth	r3, r3
 8003fb8:	4628      	mov	r0, r5
 8003fba:	46a8      	mov	r8, r5
 8003fbc:	462e      	mov	r6, r5
 8003fbe:	241f      	movs	r4, #31
 8003fc0:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
 8003fc4:	fbb1 f1f5 	udiv	r1, r1, r5
 8003fc8:	fbb2 f2f5 	udiv	r2, r2, r5
 8003fcc:	eba3 0308 	sub.w	r3, r3, r8
 8003fd0:	ea42 4101 	orr.w	r1, r2, r1, lsl #16
 8003fd4:	e75a      	b.n	8003e8c <__udivmoddi4+0x11c>
 8003fd6:	4610      	mov	r0, r2
 8003fd8:	e71a      	b.n	8003e10 <__udivmoddi4+0xa0>
 8003fda:	4601      	mov	r1, r0
 8003fdc:	e700      	b.n	8003de0 <__udivmoddi4+0x70>
 8003fde:	461c      	mov	r4, r3
 8003fe0:	f1c3 0220 	rsb	r2, r3, #32
 8003fe4:	409d      	lsls	r5, r3
 8003fe6:	40a0      	lsls	r0, r4
 8003fe8:	fa26 f302 	lsr.w	r3, r6, r2
 8003fec:	4303      	orrs	r3, r0
 8003fee:	fa21 f202 	lsr.w	r2, r1, r2
 8003ff2:	fa06 fc04 	lsl.w	ip, r6, r4
 8003ff6:	0c2e      	lsrs	r6, r5, #16
 8003ff8:	b2a8      	uxth	r0, r5
 8003ffa:	fbb2 f1f6 	udiv	r1, r2, r6
 8003ffe:	fb06 2711 	mls	r7, r6, r1, r2
 8004002:	0c1a      	lsrs	r2, r3, #16
 8004004:	ea42 4207 	orr.w	r2, r2, r7, lsl #16
 8004008:	fb01 f700 	mul.w	r7, r1, r0
 800400c:	4297      	cmp	r7, r2
 800400e:	d93c      	bls.n	800408a <__udivmoddi4+0x31a>
 8004010:	18aa      	adds	r2, r5, r2
 8004012:	d201      	bcs.n	8004018 <__udivmoddi4+0x2a8>
 8004014:	4297      	cmp	r7, r2
 8004016:	d822      	bhi.n	800405e <__udivmoddi4+0x2ee>
 8004018:	1bd2      	subs	r2, r2, r7
 800401a:	3901      	subs	r1, #1
 800401c:	fbb2 f7f6 	udiv	r7, r2, r6
 8004020:	fb07 f800 	mul.w	r8, r7, r0
 8004024:	fb06 2217 	mls	r2, r6, r7, r2
 8004028:	b29b      	uxth	r3, r3
 800402a:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
 800402e:	4543      	cmp	r3, r8
 8004030:	d229      	bcs.n	8004086 <__udivmoddi4+0x316>
 8004032:	18eb      	adds	r3, r5, r3
 8004034:	f107 32ff 	add.w	r2, r7, #4294967295	@ 0xffffffff
 8004038:	d2c8      	bcs.n	8003fcc <__udivmoddi4+0x25c>
 800403a:	3f02      	subs	r7, #2
 800403c:	4543      	cmp	r3, r8
 800403e:	bf38      	it	cc
 8004040:	463a      	movcc	r2, r7
 8004042:	195f      	adds	r7, r3, r5
 8004044:	4543      	cmp	r3, r8
 8004046:	bf38      	it	cc
 8004048:	463b      	movcc	r3, r7
 800404a:	e7bf      	b.n	8003fcc <__udivmoddi4+0x25c>
 800404c:	45ba      	cmp	sl, r7
 800404e:	d298      	bcs.n	8003f82 <__udivmoddi4+0x212>
 8004050:	ebb7 0609 	subs.w	r6, r7, r9
 8004054:	eb64 040c 	sbc.w	r4, r4, ip
 8004058:	3801      	subs	r0, #1
 800405a:	46a0      	mov	r8, r4
 800405c:	e791      	b.n	8003f82 <__udivmoddi4+0x212>
 800405e:	1bef      	subs	r7, r5, r7
 8004060:	443a      	add	r2, r7
 8004062:	3902      	subs	r1, #2
 8004064:	fbb2 f7f6 	udiv	r7, r2, r6
 8004068:	fb07 f800 	mul.w	r8, r7, r0
 800406c:	e7da      	b.n	8004024 <__udivmoddi4+0x2b4>
 800406e:	4620      	mov	r0, r4
 8004070:	e77d      	b.n	8003f6e <__udivmoddi4+0x1fe>
 8004072:	4647      	mov	r7, r8
 8004074:	e764      	b.n	8003f40 <__udivmoddi4+0x1d0>
 8004076:	4608      	mov	r0, r1
 8004078:	e6f5      	b.n	8003e66 <__udivmoddi4+0xf6>
 800407a:	44ac      	add	ip, r5
 800407c:	3f02      	subs	r7, #2
 800407e:	e72f      	b.n	8003ee0 <__udivmoddi4+0x170>
 8004080:	3a02      	subs	r2, #2
 8004082:	442b      	add	r3, r5
 8004084:	e716      	b.n	8003eb4 <__udivmoddi4+0x144>
 8004086:	463a      	mov	r2, r7
 8004088:	e7a0      	b.n	8003fcc <__udivmoddi4+0x25c>
 800408a:	1bd2      	subs	r2, r2, r7
 800408c:	fbb2 f7f6 	udiv	r7, r2, r6
 8004090:	fb07 f800 	mul.w	r8, r7, r0
 8004094:	e7c6      	b.n	8004024 <__udivmoddi4+0x2b4>
 8004096:	bf00      	nop

08004098 <AHBPrescTable>:
	...
 80040a0:	0201 0403 0706 0908                         ........

080040a8 <APBPrescTable>:
 80040a8:	0000 0000 0201 0403 0000 4800 0004 4800     ...........H...H
 80040b8:	0008 4800 000c 4800 0018 4800 17a0 1000     ...H...H...H....
 80040c8:	0400 4800 0404 4800 0408 4800 040c 4800     ...H...H...H...H
 80040d8:	0418 4800 0003 0000 1400 4800 1404 4800     ...H.......H...H
 80040e8:	1408 4800 140c 4800 1418 4800 0002 0000     ...H...H...H....

080040f8 <dc_settings>:
 80040f8:	0303 4304 4f05 1006 0107 0108 000c 0603     ...C.O..........

08004108 <dc_binding>:
 8004108:	0000 0000 2c73 0800 2c5d 0800 2cc1 0800     ....s,..],...,..
 8004118:	2cb9 0800 2cb1 0800 2cad 0800 2ca9 0800     .,...,...,...,..

08004128 <settings.0>:
 8004128:	0303 4304 4f05 1006 0107 0108 000c 0603     ...C.O..........

08004138 <table.0>:
 8004138:	01f4 02bc 03e8 04e2 05dc 06d6 07d0 08ca     ................
 8004148:	09c4 0abe 0bb8 0cb2 0dac 0fa0 1194 1388     ................

08004158 <typec_ma.1>:
 8004158:	01f4 05dc 0960 0bb8                         ....`...
