
/Users/guman/Documents/Codex/2026-09-27/https-www-amazon-com-electric-drill/work/tri-product-continuation-2026-10-10.nosync/drill_compute_diagnostic_A100/build/drill_compute_A100.elf:     file format elf32-littlearm


Disassembly of section .text:

08000400 <Reset_Handler>:
 8000400:	480e      	ldr	r0, [pc, #56]	@ (800043c <Reset_Handler+0x3c>)
 8000402:	4685      	mov	sp, r0
 8000404:	480e      	ldr	r0, [pc, #56]	@ (8000440 <Reset_Handler+0x40>)
 8000406:	490f      	ldr	r1, [pc, #60]	@ (8000444 <Reset_Handler+0x44>)
 8000408:	4a0f      	ldr	r2, [pc, #60]	@ (8000448 <Reset_Handler+0x48>)
 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:	490c      	ldr	r1, [pc, #48]	@ (800044c <Reset_Handler+0x4c>)
 800041a:	4a0d      	ldr	r2, [pc, #52]	@ (8000450 <Reset_Handler+0x50>)
 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 f816 	bl	8000458 <SystemInit>
 800042c:	f3bf 8f4f 	dsb	sy
 8000430:	f3bf 8f6f 	isb	sy
 8000434:	f001 fcaa 	bl	8001d8c <main>
 8000438:	e7fe      	b.n	8000438 <Reset_Handler+0x38>
 800043a:	0000      	.short	0x0000
 800043c:	20005800 	.word	0x20005800
 8000440:	08001f90 	.word	0x08001f90
 8000444:	20000000 	.word	0x20000000
 8000448:	20000004 	.word	0x20000004
 800044c:	20000004 	.word	0x20000004
 8000450:	20000058 	.word	0x20000058

08000454 <Default_Handler>:
 8000454:	f7ff bffe 	b.w	8000454 <Default_Handler>

08000458 <SystemInit>:
 8000458:	4a03      	ldr	r2, [pc, #12]	@ (8000468 <SystemInit+0x10>)
 800045a:	f8d2 3088 	ldr.w	r3, [r2, #136]	@ 0x88
 800045e:	f443 0370 	orr.w	r3, r3, #15728640	@ 0xf00000
 8000462:	f8c2 3088 	str.w	r3, [r2, #136]	@ 0x88
 8000466:	4770      	bx	lr
 8000468:	e000ed00 	.word	0xe000ed00

0800046c <memcpy>:
 800046c:	b510      	push	{r4, lr}
 800046e:	2300      	movs	r3, #0
 8000470:	4293      	cmp	r3, r2
 8000472:	d100      	bne.n	8000476 <memcpy+0xa>
 8000474:	bd10      	pop	{r4, pc}
 8000476:	5ccc      	ldrb	r4, [r1, r3]
 8000478:	54c4      	strb	r4, [r0, r3]
 800047a:	3301      	adds	r3, #1
 800047c:	e7f8      	b.n	8000470 <memcpy+0x4>

0800047e <memset>:
 800047e:	4603      	mov	r3, r0
 8000480:	4402      	add	r2, r0
 8000482:	4293      	cmp	r3, r2
 8000484:	d100      	bne.n	8000488 <memset+0xa>
 8000486:	4770      	bx	lr
 8000488:	f803 1b01 	strb.w	r1, [r3], #1
 800048c:	e7f9      	b.n	8000482 <memset+0x4>

0800048e <drill_safe_gpio_validate>:
 800048e:	b908      	cbnz	r0, 8000494 <drill_safe_gpio_validate+0x6>
 8000490:	2000      	movs	r0, #0
 8000492:	4770      	bx	lr
 8000494:	f100 0248 	add.w	r2, r0, #72	@ 0x48
 8000498:	6803      	ldr	r3, [r0, #0]
 800049a:	2b00      	cmp	r3, #0
 800049c:	d0f8      	beq.n	8000490 <drill_safe_gpio_validate+0x2>
 800049e:	6843      	ldr	r3, [r0, #4]
 80004a0:	2b00      	cmp	r3, #0
 80004a2:	d0f5      	beq.n	8000490 <drill_safe_gpio_validate+0x2>
 80004a4:	6883      	ldr	r3, [r0, #8]
 80004a6:	2b00      	cmp	r3, #0
 80004a8:	d0f2      	beq.n	8000490 <drill_safe_gpio_validate+0x2>
 80004aa:	68c3      	ldr	r3, [r0, #12]
 80004ac:	2b00      	cmp	r3, #0
 80004ae:	d0ef      	beq.n	8000490 <drill_safe_gpio_validate+0x2>
 80004b0:	6903      	ldr	r3, [r0, #16]
 80004b2:	2b00      	cmp	r3, #0
 80004b4:	d0ec      	beq.n	8000490 <drill_safe_gpio_validate+0x2>
 80004b6:	8a81      	ldrh	r1, [r0, #20]
 80004b8:	8ac3      	ldrh	r3, [r0, #22]
 80004ba:	438b      	bics	r3, r1
 80004bc:	d1e8      	bne.n	8000490 <drill_safe_gpio_validate+0x2>
 80004be:	3018      	adds	r0, #24
 80004c0:	4290      	cmp	r0, r2
 80004c2:	d1e9      	bne.n	8000498 <drill_safe_gpio_validate+0xa>
 80004c4:	2001      	movs	r0, #1
 80004c6:	4770      	bx	lr

080004c8 <drill_safe_gpio_preload>:
 80004c8:	b538      	push	{r3, r4, r5, lr}
 80004ca:	4604      	mov	r4, r0
 80004cc:	f7ff ffdf 	bl	800048e <drill_safe_gpio_validate>
 80004d0:	b160      	cbz	r0, 80004ec <drill_safe_gpio_preload+0x24>
 80004d2:	4623      	mov	r3, r4
 80004d4:	3448      	adds	r4, #72	@ 0x48
 80004d6:	8ada      	ldrh	r2, [r3, #22]
 80004d8:	8a99      	ldrh	r1, [r3, #20]
 80004da:	691d      	ldr	r5, [r3, #16]
 80004dc:	ea21 0102 	bic.w	r1, r1, r2
 80004e0:	3318      	adds	r3, #24
 80004e2:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
 80004e6:	429c      	cmp	r4, r3
 80004e8:	602a      	str	r2, [r5, #0]
 80004ea:	d1f4      	bne.n	80004d6 <drill_safe_gpio_preload+0xe>
 80004ec:	bd38      	pop	{r3, r4, r5, pc}

080004ee <drill_safe_gpio_configure_outputs>:
 80004ee:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 80004f2:	4604      	mov	r4, r0
 80004f4:	f7ff ffcb 	bl	800048e <drill_safe_gpio_validate>
 80004f8:	b3a8      	cbz	r0, 8000566 <drill_safe_gpio_configure_outputs+0x78>
 80004fa:	4623      	mov	r3, r4
 80004fc:	f104 0c48 	add.w	ip, r4, #72	@ 0x48
 8000500:	2601      	movs	r6, #1
 8000502:	f04f 0e03 	mov.w	lr, #3
 8000506:	8a9f      	ldrh	r7, [r3, #20]
 8000508:	2200      	movs	r2, #0
 800050a:	fa06 f802 	lsl.w	r8, r6, r2
 800050e:	ea17 0f08 	tst.w	r7, r8
 8000512:	d022      	beq.n	800055a <drill_safe_gpio_configure_outputs+0x6c>
 8000514:	685d      	ldr	r5, [r3, #4]
 8000516:	6829      	ldr	r1, [r5, #0]
 8000518:	ea21 0108 	bic.w	r1, r1, r8
 800051c:	f8d3 8008 	ldr.w	r8, [r3, #8]
 8000520:	6029      	str	r1, [r5, #0]
 8000522:	f8d8 1000 	ldr.w	r1, [r8]
 8000526:	0054      	lsls	r4, r2, #1
 8000528:	fa0e f504 	lsl.w	r5, lr, r4
 800052c:	ea21 0105 	bic.w	r1, r1, r5
 8000530:	f8c8 1000 	str.w	r1, [r8]
 8000534:	f8d3 800c 	ldr.w	r8, [r3, #12]
 8000538:	f8d8 1000 	ldr.w	r1, [r8]
 800053c:	ea21 0105 	bic.w	r1, r1, r5
 8000540:	f8c8 1000 	str.w	r1, [r8]
 8000544:	f8d3 8000 	ldr.w	r8, [r3]
 8000548:	f8d8 1000 	ldr.w	r1, [r8]
 800054c:	fa06 f404 	lsl.w	r4, r6, r4
 8000550:	ea21 0105 	bic.w	r1, r1, r5
 8000554:	4321      	orrs	r1, r4
 8000556:	f8c8 1000 	str.w	r1, [r8]
 800055a:	3201      	adds	r2, #1
 800055c:	2a10      	cmp	r2, #16
 800055e:	d1d4      	bne.n	800050a <drill_safe_gpio_configure_outputs+0x1c>
 8000560:	3318      	adds	r3, #24
 8000562:	4563      	cmp	r3, ip
 8000564:	d1cf      	bne.n	8000506 <drill_safe_gpio_configure_outputs+0x18>
 8000566:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	...

0800056c <drill_clock_available>:
 800056c:	4b19      	ldr	r3, [pc, #100]	@ (80005d4 <drill_clock_available+0x68>)
 800056e:	681a      	ldr	r2, [r3, #0]
 8000570:	4b19      	ldr	r3, [pc, #100]	@ (80005d8 <drill_clock_available+0x6c>)
 8000572:	429a      	cmp	r2, r3
 8000574:	d001      	beq.n	800057a <drill_clock_available+0xe>
 8000576:	2000      	movs	r0, #0
 8000578:	4770      	bx	lr
 800057a:	4b18      	ldr	r3, [pc, #96]	@ (80005dc <drill_clock_available+0x70>)
 800057c:	4a18      	ldr	r2, [pc, #96]	@ (80005e0 <drill_clock_available+0x74>)
 800057e:	6819      	ldr	r1, [r3, #0]
 8000580:	400a      	ands	r2, r1
 8000582:	4918      	ldr	r1, [pc, #96]	@ (80005e4 <drill_clock_available+0x78>)
 8000584:	428a      	cmp	r2, r1
 8000586:	d1f6      	bne.n	8000576 <drill_clock_available+0xa>
 8000588:	68d9      	ldr	r1, [r3, #12]
 800058a:	4a17      	ldr	r2, [pc, #92]	@ (80005e8 <drill_clock_available+0x7c>)
 800058c:	4291      	cmp	r1, r2
 800058e:	d1f2      	bne.n	8000576 <drill_clock_available+0xa>
 8000590:	689a      	ldr	r2, [r3, #8]
 8000592:	f3c2 020d 	ubfx	r2, r2, #0, #14
 8000596:	2a0f      	cmp	r2, #15
 8000598:	d1ed      	bne.n	8000576 <drill_clock_available+0xa>
 800059a:	6d9a      	ldr	r2, [r3, #88]	@ 0x58
 800059c:	00d2      	lsls	r2, r2, #3
 800059e:	d5ea      	bpl.n	8000576 <drill_clock_available+0xa>
 80005a0:	6b9b      	ldr	r3, [r3, #56]	@ 0x38
 80005a2:	00d8      	lsls	r0, r3, #3
 80005a4:	d4e7      	bmi.n	8000576 <drill_clock_available+0xa>
 80005a6:	4b11      	ldr	r3, [pc, #68]	@ (80005ec <drill_clock_available+0x80>)
 80005a8:	681a      	ldr	r2, [r3, #0]
 80005aa:	f402 428c 	and.w	r2, r2, #17920	@ 0x4600
 80005ae:	f5b2 7f00 	cmp.w	r2, #512	@ 0x200
 80005b2:	d1e0      	bne.n	8000576 <drill_clock_available+0xa>
 80005b4:	f8d3 2080 	ldr.w	r2, [r3, #128]	@ 0x80
 80005b8:	05d1      	lsls	r1, r2, #23
 80005ba:	d5dc      	bpl.n	8000576 <drill_clock_available+0xa>
 80005bc:	695b      	ldr	r3, [r3, #20]
 80005be:	055a      	lsls	r2, r3, #21
 80005c0:	d4d9      	bmi.n	8000576 <drill_clock_available+0xa>
 80005c2:	4b0b      	ldr	r3, [pc, #44]	@ (80005f0 <drill_clock_available+0x84>)
 80005c4:	6818      	ldr	r0, [r3, #0]
 80005c6:	f000 000f 	and.w	r0, r0, #15
 80005ca:	1f03      	subs	r3, r0, #4
 80005cc:	4258      	negs	r0, r3
 80005ce:	4158      	adcs	r0, r3
 80005d0:	4770      	bx	lr
 80005d2:	bf00      	nop
 80005d4:	20000000 	.word	0x20000000
 80005d8:	07a12000 	.word	0x07a12000
 80005dc:	40021000 	.word	0x40021000
 80005e0:	03050500 	.word	0x03050500
 80005e4:	03000500 	.word	0x03000500
 80005e8:	01004032 	.word	0x01004032
 80005ec:	40007000 	.word	0x40007000
 80005f0:	40022000 	.word	0x40022000

080005f4 <clock_wait>:
 80005f4:	b510      	push	{r4, lr}
 80005f6:	f44f 3380 	mov.w	r3, #65536	@ 0x10000
 80005fa:	f3bf 8f4f 	dsb	sy
 80005fe:	6804      	ldr	r4, [r0, #0]
 8000600:	400c      	ands	r4, r1
 8000602:	4294      	cmp	r4, r2
 8000604:	d003      	beq.n	800060e <clock_wait+0x1a>
 8000606:	3b01      	subs	r3, #1
 8000608:	d1f7      	bne.n	80005fa <clock_wait+0x6>
 800060a:	4618      	mov	r0, r3
 800060c:	bd10      	pop	{r4, pc}
 800060e:	2001      	movs	r0, #1
 8000610:	e7fc      	b.n	800060c <clock_wait+0x18>

08000612 <clock_pin>:
 8000612:	6803      	ldr	r3, [r0, #0]
 8000614:	b510      	push	{r4, lr}
 8000616:	004c      	lsls	r4, r1, #1
 8000618:	40e3      	lsrs	r3, r4
 800061a:	f003 0303 	and.w	r3, r3, #3
 800061e:	2b01      	cmp	r3, #1
 8000620:	d001      	beq.n	8000626 <clock_pin+0x14>
 8000622:	2000      	movs	r0, #0
 8000624:	bd10      	pop	{r4, pc}
 8000626:	fa03 f101 	lsl.w	r1, r3, r1
 800062a:	6843      	ldr	r3, [r0, #4]
 800062c:	420b      	tst	r3, r1
 800062e:	d1f8      	bne.n	8000622 <clock_pin+0x10>
 8000630:	6943      	ldr	r3, [r0, #20]
 8000632:	420b      	tst	r3, r1
 8000634:	bf14      	ite	ne
 8000636:	2301      	movne	r3, #1
 8000638:	2300      	moveq	r3, #0
 800063a:	4293      	cmp	r3, r2
 800063c:	d1f1      	bne.n	8000622 <clock_pin+0x10>
 800063e:	6902      	ldr	r2, [r0, #16]
 8000640:	420a      	tst	r2, r1
 8000642:	bf14      	ite	ne
 8000644:	2001      	movne	r0, #1
 8000646:	2000      	moveq	r0, #0
 8000648:	1ac3      	subs	r3, r0, r3
 800064a:	4258      	negs	r0, r3
 800064c:	4158      	adcs	r0, r3
 800064e:	e7e9      	b.n	8000624 <clock_pin+0x12>

08000650 <clock_pins_off>:
 8000650:	b508      	push	{r3, lr}
 8000652:	4b27      	ldr	r3, [pc, #156]	@ (80006f0 <clock_pins_off+0xa0>)
 8000654:	6cdb      	ldr	r3, [r3, #76]	@ 0x4c
 8000656:	f003 0323 	and.w	r3, r3, #35	@ 0x23
 800065a:	2b23      	cmp	r3, #35	@ 0x23
 800065c:	d003      	beq.n	8000666 <clock_pins_off+0x16>
 800065e:	2000      	movs	r0, #0
 8000660:	f000 0001 	and.w	r0, r0, #1
 8000664:	bd08      	pop	{r3, pc}
 8000666:	2200      	movs	r2, #0
 8000668:	2105      	movs	r1, #5
 800066a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 800066e:	f7ff ffd0 	bl	8000612 <clock_pin>
 8000672:	2800      	cmp	r0, #0
 8000674:	d0f3      	beq.n	800065e <clock_pins_off+0xe>
 8000676:	2200      	movs	r2, #0
 8000678:	2107      	movs	r1, #7
 800067a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 800067e:	f7ff ffc8 	bl	8000612 <clock_pin>
 8000682:	2800      	cmp	r0, #0
 8000684:	d0eb      	beq.n	800065e <clock_pins_off+0xe>
 8000686:	2200      	movs	r2, #0
 8000688:	2108      	movs	r1, #8
 800068a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 800068e:	f7ff ffc0 	bl	8000612 <clock_pin>
 8000692:	2800      	cmp	r0, #0
 8000694:	d0e3      	beq.n	800065e <clock_pins_off+0xe>
 8000696:	2200      	movs	r2, #0
 8000698:	2109      	movs	r1, #9
 800069a:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 800069e:	f7ff ffb8 	bl	8000612 <clock_pin>
 80006a2:	2800      	cmp	r0, #0
 80006a4:	d0db      	beq.n	800065e <clock_pins_off+0xe>
 80006a6:	2200      	movs	r2, #0
 80006a8:	210a      	movs	r1, #10
 80006aa:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 80006ae:	f7ff ffb0 	bl	8000612 <clock_pin>
 80006b2:	2800      	cmp	r0, #0
 80006b4:	d0d3      	beq.n	800065e <clock_pins_off+0xe>
 80006b6:	2200      	movs	r2, #0
 80006b8:	480e      	ldr	r0, [pc, #56]	@ (80006f4 <clock_pins_off+0xa4>)
 80006ba:	4611      	mov	r1, r2
 80006bc:	f7ff ffa9 	bl	8000612 <clock_pin>
 80006c0:	2800      	cmp	r0, #0
 80006c2:	d0cc      	beq.n	800065e <clock_pins_off+0xe>
 80006c4:	480b      	ldr	r0, [pc, #44]	@ (80006f4 <clock_pins_off+0xa4>)
 80006c6:	2200      	movs	r2, #0
 80006c8:	2101      	movs	r1, #1
 80006ca:	f7ff ffa2 	bl	8000612 <clock_pin>
 80006ce:	2800      	cmp	r0, #0
 80006d0:	d0c5      	beq.n	800065e <clock_pins_off+0xe>
 80006d2:	4809      	ldr	r0, [pc, #36]	@ (80006f8 <clock_pins_off+0xa8>)
 80006d4:	2200      	movs	r2, #0
 80006d6:	2101      	movs	r1, #1
 80006d8:	f7ff ff9b 	bl	8000612 <clock_pin>
 80006dc:	2800      	cmp	r0, #0
 80006de:	d0be      	beq.n	800065e <clock_pins_off+0xe>
 80006e0:	2201      	movs	r2, #1
 80006e2:	210c      	movs	r1, #12
 80006e4:	f04f 4090 	mov.w	r0, #1207959552	@ 0x48000000
 80006e8:	f7ff ff93 	bl	8000612 <clock_pin>
 80006ec:	e7b8      	b.n	8000660 <clock_pins_off+0x10>
 80006ee:	bf00      	nop
 80006f0:	40021000 	.word	0x40021000
 80006f4:	48000400 	.word	0x48000400
 80006f8:	48001400 	.word	0x48001400

080006fc <drill_clock_init>:
 80006fc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 80006fe:	4e59      	ldr	r6, [pc, #356]	@ (8000864 <drill_clock_init+0x168>)
 8000700:	7833      	ldrb	r3, [r6, #0]
 8000702:	2b00      	cmp	r3, #0
 8000704:	d137      	bne.n	8000776 <drill_clock_init+0x7a>
 8000706:	4f58      	ldr	r7, [pc, #352]	@ (8000868 <drill_clock_init+0x16c>)
 8000708:	783b      	ldrb	r3, [r7, #0]
 800070a:	b143      	cbz	r3, 800071e <drill_clock_init+0x22>
 800070c:	f7ff ff2e 	bl	800056c <drill_clock_available>
 8000710:	2800      	cmp	r0, #0
 8000712:	f000 80a6 	beq.w	8000862 <drill_clock_init+0x166>
 8000716:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 800071a:	f7ff bf99 	b.w	8000650 <clock_pins_off>
 800071e:	f7ff ff97 	bl	8000650 <clock_pins_off>
 8000722:	b330      	cbz	r0, 8000772 <drill_clock_init+0x76>
 8000724:	4c51      	ldr	r4, [pc, #324]	@ (800086c <drill_clock_init+0x170>)
 8000726:	4b52      	ldr	r3, [pc, #328]	@ (8000870 <drill_clock_init+0x174>)
 8000728:	6822      	ldr	r2, [r4, #0]
 800072a:	421a      	tst	r2, r3
 800072c:	d121      	bne.n	8000772 <drill_clock_init+0x76>
 800072e:	6823      	ldr	r3, [r4, #0]
 8000730:	f403 63a0 	and.w	r3, r3, #1280	@ 0x500
 8000734:	f5b3 6fa0 	cmp.w	r3, #1280	@ 0x500
 8000738:	d11b      	bne.n	8000772 <drill_clock_init+0x76>
 800073a:	68a3      	ldr	r3, [r4, #8]
 800073c:	f3c3 030d 	ubfx	r3, r3, #0, #14
 8000740:	2b05      	cmp	r3, #5
 8000742:	d116      	bne.n	8000772 <drill_clock_init+0x76>
 8000744:	6da2      	ldr	r2, [r4, #88]	@ 0x58
 8000746:	f244 0301 	movw	r3, #16385	@ 0x4001
 800074a:	421a      	tst	r2, r3
 800074c:	d111      	bne.n	8000772 <drill_clock_init+0x76>
 800074e:	6e23      	ldr	r3, [r4, #96]	@ 0x60
 8000750:	051d      	lsls	r5, r3, #20
 8000752:	d40e      	bmi.n	8000772 <drill_clock_init+0x76>
 8000754:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 8000756:	0498      	lsls	r0, r3, #18
 8000758:	d40b      	bmi.n	8000772 <drill_clock_init+0x76>
 800075a:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 800075c:	0759      	lsls	r1, r3, #29
 800075e:	d108      	bne.n	8000772 <drill_clock_init+0x76>
 8000760:	6ba3      	ldr	r3, [r4, #56]	@ 0x38
 8000762:	00da      	lsls	r2, r3, #3
 8000764:	d405      	bmi.n	8000772 <drill_clock_init+0x76>
 8000766:	f04f 23e0 	mov.w	r3, #3758153728	@ 0xe000e000
 800076a:	691a      	ldr	r2, [r3, #16]
 800076c:	f012 0201 	ands.w	r2, r2, #1
 8000770:	d003      	beq.n	800077a <drill_clock_init+0x7e>
 8000772:	2301      	movs	r3, #1
 8000774:	7033      	strb	r3, [r6, #0]
 8000776:	2000      	movs	r0, #0
 8000778:	e073      	b.n	8000862 <drill_clock_init+0x166>
 800077a:	6da3      	ldr	r3, [r4, #88]	@ 0x58
 800077c:	f043 5380 	orr.w	r3, r3, #268435456	@ 0x10000000
 8000780:	65a3      	str	r3, [r4, #88]	@ 0x58
 8000782:	6da3      	ldr	r3, [r4, #88]	@ 0x58
 8000784:	f3bf 8f4f 	dsb	sy
 8000788:	4d3a      	ldr	r5, [pc, #232]	@ (8000874 <drill_clock_init+0x178>)
 800078a:	483b      	ldr	r0, [pc, #236]	@ (8000878 <drill_clock_init+0x17c>)
 800078c:	682b      	ldr	r3, [r5, #0]
 800078e:	f423 438c 	bic.w	r3, r3, #17920	@ 0x4600
 8000792:	f443 7300 	orr.w	r3, r3, #512	@ 0x200
 8000796:	602b      	str	r3, [r5, #0]
 8000798:	f8d5 3080 	ldr.w	r3, [r5, #128]	@ 0x80
 800079c:	f443 7380 	orr.w	r3, r3, #256	@ 0x100
 80007a0:	f8c5 3080 	str.w	r3, [r5, #128]	@ 0x80
 80007a4:	f44f 6180 	mov.w	r1, #1024	@ 0x400
 80007a8:	f7ff ff24 	bl	80005f4 <clock_wait>
 80007ac:	2800      	cmp	r0, #0
 80007ae:	d0e0      	beq.n	8000772 <drill_clock_init+0x76>
 80007b0:	682b      	ldr	r3, [r5, #0]
 80007b2:	f403 438c 	and.w	r3, r3, #17920	@ 0x4600
 80007b6:	f5b3 7f00 	cmp.w	r3, #512	@ 0x200
 80007ba:	d1da      	bne.n	8000772 <drill_clock_init+0x76>
 80007bc:	f8d5 3080 	ldr.w	r3, [r5, #128]	@ 0x80
 80007c0:	05db      	lsls	r3, r3, #23
 80007c2:	d5d6      	bpl.n	8000772 <drill_clock_init+0x76>
 80007c4:	482d      	ldr	r0, [pc, #180]	@ (800087c <drill_clock_init+0x180>)
 80007c6:	6803      	ldr	r3, [r0, #0]
 80007c8:	f023 030f 	bic.w	r3, r3, #15
 80007cc:	f043 0304 	orr.w	r3, r3, #4
 80007d0:	6003      	str	r3, [r0, #0]
 80007d2:	2204      	movs	r2, #4
 80007d4:	210f      	movs	r1, #15
 80007d6:	f7ff ff0d 	bl	80005f4 <clock_wait>
 80007da:	2800      	cmp	r0, #0
 80007dc:	d0c9      	beq.n	8000772 <drill_clock_init+0x76>
 80007de:	4b28      	ldr	r3, [pc, #160]	@ (8000880 <drill_clock_init+0x184>)
 80007e0:	60e3      	str	r3, [r4, #12]
 80007e2:	f3bf 8f4f 	dsb	sy
 80007e6:	68e2      	ldr	r2, [r4, #12]
 80007e8:	429a      	cmp	r2, r3
 80007ea:	d1c2      	bne.n	8000772 <drill_clock_init+0x76>
 80007ec:	6823      	ldr	r3, [r4, #0]
 80007ee:	481f      	ldr	r0, [pc, #124]	@ (800086c <drill_clock_init+0x170>)
 80007f0:	f043 7380 	orr.w	r3, r3, #16777216	@ 0x1000000
 80007f4:	f04f 7200 	mov.w	r2, #33554432	@ 0x2000000
 80007f8:	6023      	str	r3, [r4, #0]
 80007fa:	4611      	mov	r1, r2
 80007fc:	f7ff fefa 	bl	80005f4 <clock_wait>
 8000800:	2800      	cmp	r0, #0
 8000802:	d0b6      	beq.n	8000772 <drill_clock_init+0x76>
 8000804:	68a3      	ldr	r3, [r4, #8]
 8000806:	f023 03f0 	bic.w	r3, r3, #240	@ 0xf0
 800080a:	f043 0380 	orr.w	r3, r3, #128	@ 0x80
 800080e:	60a3      	str	r3, [r4, #8]
 8000810:	f3bf 8f4f 	dsb	sy
 8000814:	68a3      	ldr	r3, [r4, #8]
 8000816:	f003 03f0 	and.w	r3, r3, #240	@ 0xf0
 800081a:	2b80      	cmp	r3, #128	@ 0x80
 800081c:	d1a9      	bne.n	8000772 <drill_clock_init+0x76>
 800081e:	68a3      	ldr	r3, [r4, #8]
 8000820:	4818      	ldr	r0, [pc, #96]	@ (8000884 <drill_clock_init+0x188>)
 8000822:	f043 0303 	orr.w	r3, r3, #3
 8000826:	220c      	movs	r2, #12
 8000828:	60a3      	str	r3, [r4, #8]
 800082a:	4611      	mov	r1, r2
 800082c:	f7ff fee2 	bl	80005f4 <clock_wait>
 8000830:	2800      	cmp	r0, #0
 8000832:	d09e      	beq.n	8000772 <drill_clock_init+0x76>
 8000834:	4a14      	ldr	r2, [pc, #80]	@ (8000888 <drill_clock_init+0x18c>)
 8000836:	4b15      	ldr	r3, [pc, #84]	@ (800088c <drill_clock_init+0x190>)
 8000838:	6013      	str	r3, [r2, #0]
 800083a:	68a3      	ldr	r3, [r4, #8]
 800083c:	f023 03f0 	bic.w	r3, r3, #240	@ 0xf0
 8000840:	60a3      	str	r3, [r4, #8]
 8000842:	f3bf 8f4f 	dsb	sy
 8000846:	f3bf 8f6f 	isb	sy
 800084a:	4b11      	ldr	r3, [pc, #68]	@ (8000890 <drill_clock_init+0x194>)
 800084c:	6013      	str	r3, [r2, #0]
 800084e:	2301      	movs	r3, #1
 8000850:	703b      	strb	r3, [r7, #0]
 8000852:	f7ff fe8b 	bl	800056c <drill_clock_available>
 8000856:	2800      	cmp	r0, #0
 8000858:	d08b      	beq.n	8000772 <drill_clock_init+0x76>
 800085a:	f7ff fef9 	bl	8000650 <clock_pins_off>
 800085e:	2800      	cmp	r0, #0
 8000860:	d087      	beq.n	8000772 <drill_clock_init+0x76>
 8000862:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8000864:	20000004 	.word	0x20000004
 8000868:	20000005 	.word	0x20000005
 800086c:	40021000 	.word	0x40021000
 8000870:	03050000 	.word	0x03050000
 8000874:	40007000 	.word	0x40007000
 8000878:	40007014 	.word	0x40007014
 800087c:	40022000 	.word	0x40022000
 8000880:	01004032 	.word	0x01004032
 8000884:	40021008 	.word	0x40021008
 8000888:	20000000 	.word	0x20000000
 800088c:	03d09000 	.word	0x03d09000
 8000890:	07a12000 	.word	0x07a12000

08000894 <finite_value>:
 8000894:	eeb4 0a40 	vcmp.f32	s0, s0
 8000898:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800089c:	d001      	beq.n	80008a2 <finite_value+0xe>
 800089e:	2000      	movs	r0, #0
 80008a0:	4770      	bx	lr
 80008a2:	eddf 7a08 	vldr	s15, [pc, #32]	@ 80008c4 <finite_value+0x30>
 80008a6:	eeb4 0ae7 	vcmpe.f32	s0, s15
 80008aa:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80008ae:	d8f6      	bhi.n	800089e <finite_value+0xa>
 80008b0:	eddf 7a05 	vldr	s15, [pc, #20]	@ 80008c8 <finite_value+0x34>
 80008b4:	eeb4 0ae7 	vcmpe.f32	s0, s15
 80008b8:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80008bc:	bfac      	ite	ge
 80008be:	2001      	movge	r0, #1
 80008c0:	2000      	movlt	r0, #0
 80008c2:	4770      	bx	lr
 80008c4:	7f7fffff 	.word	0x7f7fffff
 80008c8:	ff7fffff 	.word	0xff7fffff

080008cc <wrap_pi>:
 80008cc:	eddf 7a0c 	vldr	s15, [pc, #48]	@ 8000900 <wrap_pi+0x34>
 80008d0:	ed9f 7a0c 	vldr	s14, [pc, #48]	@ 8000904 <wrap_pi+0x38>
 80008d4:	eeb4 0ae7 	vcmpe.f32	s0, s15
 80008d8:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80008dc:	dc09      	bgt.n	80008f2 <wrap_pi+0x26>
 80008de:	eddf 7a0a 	vldr	s15, [pc, #40]	@ 8000908 <wrap_pi+0x3c>
 80008e2:	ed9f 7a08 	vldr	s14, [pc, #32]	@ 8000904 <wrap_pi+0x38>
 80008e6:	eeb4 0ae7 	vcmpe.f32	s0, s15
 80008ea:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80008ee:	d403      	bmi.n	80008f8 <wrap_pi+0x2c>
 80008f0:	4770      	bx	lr
 80008f2:	ee30 0a47 	vsub.f32	s0, s0, s14
 80008f6:	e7ed      	b.n	80008d4 <wrap_pi+0x8>
 80008f8:	ee30 0a07 	vadd.f32	s0, s0, s14
 80008fc:	e7f3      	b.n	80008e6 <wrap_pi+0x1a>
 80008fe:	bf00      	nop
 8000900:	40490fdb 	.word	0x40490fdb
 8000904:	40c90fdb 	.word	0x40c90fdb
 8000908:	c0490fdb 	.word	0xc0490fdb

0800090c <atan2_cordic>:
 800090c:	eef5 0a40 	vcmp.f32	s1, #0.0
 8000910:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000914:	eef0 7a40 	vmov.f32	s15, s0
 8000918:	d107      	bne.n	800092a <atan2_cordic+0x1e>
 800091a:	eeb5 0a40 	vcmp.f32	s0, #0.0
 800091e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000922:	d107      	bne.n	8000934 <atan2_cordic+0x28>
 8000924:	ed9f 0a21 	vldr	s0, [pc, #132]	@ 80009ac <atan2_cordic+0xa0>
 8000928:	4770      	bx	lr
 800092a:	eef5 0ac0 	vcmpe.f32	s1, #0.0
 800092e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000932:	d424      	bmi.n	800097e <atan2_cordic+0x72>
 8000934:	ed9f 0a1d 	vldr	s0, [pc, #116]	@ 80009ac <atan2_cordic+0xa0>
 8000938:	4a1d      	ldr	r2, [pc, #116]	@ (80009b0 <atan2_cordic+0xa4>)
 800093a:	2300      	movs	r3, #0
 800093c:	2101      	movs	r1, #1
 800093e:	eef7 5a00 	vmov.f32	s11, #112	@ 0x3f800000  1.0
 8000942:	fa01 f003 	lsl.w	r0, r1, r3
 8000946:	ee06 0a90 	vmov	s13, r0
 800094a:	eef8 6ae6 	vcvt.f32.s32	s13, s13
 800094e:	eef5 7ac0 	vcmpe.f32	s15, #0.0
 8000952:	ee85 7aa6 	vdiv.f32	s14, s11, s13
 8000956:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800095a:	ee27 6a27 	vmul.f32	s12, s14, s15
 800095e:	ecf2 6a01 	vldmia	r2!, {s13}
 8000962:	ee27 7a20 	vmul.f32	s14, s14, s1
 8000966:	dd1a      	ble.n	800099e <atan2_cordic+0x92>
 8000968:	ee70 0a86 	vadd.f32	s1, s1, s12
 800096c:	ee77 7ac7 	vsub.f32	s15, s15, s14
 8000970:	ee30 0a26 	vadd.f32	s0, s0, s13
 8000974:	3301      	adds	r3, #1
 8000976:	2b12      	cmp	r3, #18
 8000978:	d1e3      	bne.n	8000942 <atan2_cordic+0x36>
 800097a:	f7ff bfa7 	b.w	80008cc <wrap_pi>
 800097e:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000982:	ed9f 7a0c 	vldr	s14, [pc, #48]	@ 80009b4 <atan2_cordic+0xa8>
 8000986:	ed9f 0a0c 	vldr	s0, [pc, #48]	@ 80009b8 <atan2_cordic+0xac>
 800098a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800098e:	bfb8      	it	lt
 8000990:	eeb0 0a47 	vmovlt.f32	s0, s14
 8000994:	eef1 0a60 	vneg.f32	s1, s1
 8000998:	eef1 7a67 	vneg.f32	s15, s15
 800099c:	e7cc      	b.n	8000938 <atan2_cordic+0x2c>
 800099e:	ee70 0ac6 	vsub.f32	s1, s1, s12
 80009a2:	ee77 7a87 	vadd.f32	s15, s15, s14
 80009a6:	ee30 0a66 	vsub.f32	s0, s0, s13
 80009aa:	e7e3      	b.n	8000974 <atan2_cordic+0x68>
 80009ac:	00000000 	.word	0x00000000
 80009b0:	08001ea8 	.word	0x08001ea8
 80009b4:	c0490fdb 	.word	0xc0490fdb
 80009b8:	40490fdb 	.word	0x40490fdb

080009bc <drill_smo_sincos>:
 80009bc:	b510      	push	{r4, lr}
 80009be:	eeb0 7a40 	vmov.f32	s14, s0
 80009c2:	4602      	mov	r2, r0
 80009c4:	b130      	cbz	r0, 80009d4 <drill_smo_sincos+0x18>
 80009c6:	b129      	cbz	r1, 80009d4 <drill_smo_sincos+0x18>
 80009c8:	f7ff ff64 	bl	8000894 <finite_value>
 80009cc:	2300      	movs	r3, #0
 80009ce:	b910      	cbnz	r0, 80009d6 <drill_smo_sincos+0x1a>
 80009d0:	6013      	str	r3, [r2, #0]
 80009d2:	600b      	str	r3, [r1, #0]
 80009d4:	bd10      	pop	{r4, pc}
 80009d6:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 80009da:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80009de:	d519      	bpl.n	8000a14 <drill_smo_sincos+0x58>
 80009e0:	eddf 7a44 	vldr	s15, [pc, #272]	@ 8000af4 <drill_smo_sincos+0x138>
 80009e4:	eeb4 0ae7 	vcmpe.f32	s0, s15
 80009e8:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80009ec:	d4f0      	bmi.n	80009d0 <drill_smo_sincos+0x14>
 80009ee:	eddf 7a42 	vldr	s15, [pc, #264]	@ 8000af8 <drill_smo_sincos+0x13c>
 80009f2:	eeb4 0ae7 	vcmpe.f32	s0, s15
 80009f6:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80009fa:	d419      	bmi.n	8000a30 <drill_smo_sincos+0x74>
 80009fc:	eddf 7a3f 	vldr	s15, [pc, #252]	@ 8000afc <drill_smo_sincos+0x140>
 8000a00:	eeb4 7ae7 	vcmpe.f32	s14, s15
 8000a04:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000a08:	d56a      	bpl.n	8000ae0 <drill_smo_sincos+0x124>
 8000a0a:	eddf 7a3d 	vldr	s15, [pc, #244]	@ 8000b00 <drill_smo_sincos+0x144>
 8000a0e:	ee37 7a27 	vadd.f32	s14, s14, s15
 8000a12:	e02b      	b.n	8000a6c <drill_smo_sincos+0xb0>
 8000a14:	eddf 7a3b 	vldr	s15, [pc, #236]	@ 8000b04 <drill_smo_sincos+0x148>
 8000a18:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000a1c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000a20:	dcd6      	bgt.n	80009d0 <drill_smo_sincos+0x14>
 8000a22:	eddf 7a37 	vldr	s15, [pc, #220]	@ 8000b00 <drill_smo_sincos+0x144>
 8000a26:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000a2a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000a2e:	dd12      	ble.n	8000a56 <drill_smo_sincos+0x9a>
 8000a30:	eddf 6a35 	vldr	s13, [pc, #212]	@ 8000b08 <drill_smo_sincos+0x14c>
 8000a34:	eec7 7a26 	vdiv.f32	s15, s14, s13
 8000a38:	eefd 7ae7 	vcvt.s32.f32	s15, s15
 8000a3c:	eef8 7ae7 	vcvt.f32.s32	s15, s15
 8000a40:	ee07 7ae6 	vmls.f32	s14, s15, s13
 8000a44:	eddf 7a2e 	vldr	s15, [pc, #184]	@ 8000b00 <drill_smo_sincos+0x144>
 8000a48:	eeb4 7ae7 	vcmpe.f32	s14, s15
 8000a4c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000a50:	dd3c      	ble.n	8000acc <drill_smo_sincos+0x110>
 8000a52:	ee37 7a66 	vsub.f32	s14, s14, s13
 8000a56:	eddf 7a2d 	vldr	s15, [pc, #180]	@ 8000b0c <drill_smo_sincos+0x150>
 8000a5a:	eeb4 7ae7 	vcmpe.f32	s14, s15
 8000a5e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000a62:	ddcb      	ble.n	80009fc <drill_smo_sincos+0x40>
 8000a64:	eddf 7a26 	vldr	s15, [pc, #152]	@ 8000b00 <drill_smo_sincos+0x144>
 8000a68:	ee37 7a67 	vsub.f32	s14, s14, s15
 8000a6c:	eeff 6a00 	vmov.f32	s13, #240	@ 0xbf800000 -1.0
 8000a70:	4827      	ldr	r0, [pc, #156]	@ (8000b10 <drill_smo_sincos+0x154>)
 8000a72:	ed9f 6a28 	vldr	s12, [pc, #160]	@ 8000b14 <drill_smo_sincos+0x158>
 8000a76:	eddf 7a28 	vldr	s15, [pc, #160]	@ 8000b18 <drill_smo_sincos+0x15c>
 8000a7a:	2300      	movs	r3, #0
 8000a7c:	2401      	movs	r4, #1
 8000a7e:	eeb7 4a00 	vmov.f32	s8, #112	@ 0x3f800000  1.0
 8000a82:	fa04 fc03 	lsl.w	ip, r4, r3
 8000a86:	ee05 ca10 	vmov	s10, ip
 8000a8a:	eeb8 5ac5 	vcvt.f32.s32	s10, s10
 8000a8e:	eeb5 7ac0 	vcmpe.f32	s14, #0.0
 8000a92:	eec4 5a05 	vdiv.f32	s11, s8, s10
 8000a96:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000a9a:	ee65 4aa7 	vmul.f32	s9, s11, s15
 8000a9e:	ecb0 5a01 	vldmia	r0!, {s10}
 8000aa2:	ee65 5a86 	vmul.f32	s11, s11, s12
 8000aa6:	db1e      	blt.n	8000ae6 <drill_smo_sincos+0x12a>
 8000aa8:	ee36 6a64 	vsub.f32	s12, s12, s9
 8000aac:	ee77 7aa5 	vadd.f32	s15, s15, s11
 8000ab0:	ee37 7a45 	vsub.f32	s14, s14, s10
 8000ab4:	3301      	adds	r3, #1
 8000ab6:	2b12      	cmp	r3, #18
 8000ab8:	d1e3      	bne.n	8000a82 <drill_smo_sincos+0xc6>
 8000aba:	ee66 7aa7 	vmul.f32	s15, s13, s15
 8000abe:	ee66 6a86 	vmul.f32	s13, s13, s12
 8000ac2:	edc2 7a00 	vstr	s15, [r2]
 8000ac6:	edc1 6a00 	vstr	s13, [r1]
 8000aca:	e783      	b.n	80009d4 <drill_smo_sincos+0x18>
 8000acc:	eddf 7a0a 	vldr	s15, [pc, #40]	@ 8000af8 <drill_smo_sincos+0x13c>
 8000ad0:	eeb4 7ae7 	vcmpe.f32	s14, s15
 8000ad4:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000ad8:	d5bd      	bpl.n	8000a56 <drill_smo_sincos+0x9a>
 8000ada:	ee37 7a26 	vadd.f32	s14, s14, s13
 8000ade:	e7ba      	b.n	8000a56 <drill_smo_sincos+0x9a>
 8000ae0:	eef7 6a00 	vmov.f32	s13, #112	@ 0x3f800000  1.0
 8000ae4:	e7c4      	b.n	8000a70 <drill_smo_sincos+0xb4>
 8000ae6:	ee36 6a24 	vadd.f32	s12, s12, s9
 8000aea:	ee77 7ae5 	vsub.f32	s15, s15, s11
 8000aee:	ee37 7a05 	vadd.f32	s14, s14, s10
 8000af2:	e7df      	b.n	8000ab4 <drill_smo_sincos+0xf8>
 8000af4:	c9742400 	.word	0xc9742400
 8000af8:	c0490fdb 	.word	0xc0490fdb
 8000afc:	bfc90fdb 	.word	0xbfc90fdb
 8000b00:	40490fdb 	.word	0x40490fdb
 8000b04:	49742400 	.word	0x49742400
 8000b08:	40c90fdb 	.word	0x40c90fdb
 8000b0c:	3fc90fdb 	.word	0x3fc90fdb
 8000b10:	08001ea8 	.word	0x08001ea8
 8000b14:	3f1b74ee 	.word	0x3f1b74ee
 8000b18:	00000000 	.word	0x00000000

08000b1c <drill_smo_reset>:
 8000b1c:	b510      	push	{r4, lr}
 8000b1e:	4604      	mov	r4, r0
 8000b20:	b180      	cbz	r0, 8000b44 <drill_smo_reset+0x28>
 8000b22:	2238      	movs	r2, #56	@ 0x38
 8000b24:	2100      	movs	r1, #0
 8000b26:	f7ff fcaa 	bl	800047e <memset>
 8000b2a:	2300      	movs	r3, #0
 8000b2c:	63a3      	str	r3, [r4, #56]	@ 0x38
 8000b2e:	63e3      	str	r3, [r4, #60]	@ 0x3c
 8000b30:	6423      	str	r3, [r4, #64]	@ 0x40
 8000b32:	6463      	str	r3, [r4, #68]	@ 0x44
 8000b34:	64a3      	str	r3, [r4, #72]	@ 0x48
 8000b36:	64e3      	str	r3, [r4, #76]	@ 0x4c
 8000b38:	6523      	str	r3, [r4, #80]	@ 0x50
 8000b3a:	6563      	str	r3, [r4, #84]	@ 0x54
 8000b3c:	2300      	movs	r3, #0
 8000b3e:	65a3      	str	r3, [r4, #88]	@ 0x58
 8000b40:	f8a4 305c 	strh.w	r3, [r4, #92]	@ 0x5c
 8000b44:	bd10      	pop	{r4, pc}
	...

08000b48 <drill_smo_init>:
 8000b48:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8000b4a:	4606      	mov	r6, r0
 8000b4c:	460d      	mov	r5, r1
 8000b4e:	b910      	cbnz	r0, 8000b56 <drill_smo_init+0xe>
 8000b50:	2400      	movs	r4, #0
 8000b52:	4620      	mov	r0, r4
 8000b54:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8000b56:	f7ff ffe1 	bl	8000b1c <drill_smo_reset>
 8000b5a:	2d00      	cmp	r5, #0
 8000b5c:	d0f8      	beq.n	8000b50 <drill_smo_init+0x8>
 8000b5e:	ed95 0a00 	vldr	s0, [r5]
 8000b62:	f7ff fe97 	bl	8000894 <finite_value>
 8000b66:	4604      	mov	r4, r0
 8000b68:	2800      	cmp	r0, #0
 8000b6a:	d0f2      	beq.n	8000b52 <drill_smo_init+0xa>
 8000b6c:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000b70:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000b74:	d9ec      	bls.n	8000b50 <drill_smo_init+0x8>
 8000b76:	ed9f 6a96 	vldr	s12, [pc, #600]	@ 8000dd0 <drill_smo_init+0x288>
 8000b7a:	eeb4 0ac6 	vcmpe.f32	s0, s12
 8000b7e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000b82:	dce5      	bgt.n	8000b50 <drill_smo_init+0x8>
 8000b84:	ed95 0a01 	vldr	s0, [r5, #4]
 8000b88:	f7ff fe84 	bl	8000894 <finite_value>
 8000b8c:	4604      	mov	r4, r0
 8000b8e:	2800      	cmp	r0, #0
 8000b90:	d0df      	beq.n	8000b52 <drill_smo_init+0xa>
 8000b92:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000b96:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000b9a:	d9d9      	bls.n	8000b50 <drill_smo_init+0x8>
 8000b9c:	eef7 7a00 	vmov.f32	s15, #112	@ 0x3f800000  1.0
 8000ba0:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000ba4:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000ba8:	dcd2      	bgt.n	8000b50 <drill_smo_init+0x8>
 8000baa:	ed95 0a02 	vldr	s0, [r5, #8]
 8000bae:	f7ff fe71 	bl	8000894 <finite_value>
 8000bb2:	4604      	mov	r4, r0
 8000bb4:	2800      	cmp	r0, #0
 8000bb6:	d0cc      	beq.n	8000b52 <drill_smo_init+0xa>
 8000bb8:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000bbc:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000bc0:	d9c6      	bls.n	8000b50 <drill_smo_init+0x8>
 8000bc2:	eddf 7a84 	vldr	s15, [pc, #528]	@ 8000dd4 <drill_smo_init+0x28c>
 8000bc6:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000bca:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000bce:	dcbf      	bgt.n	8000b50 <drill_smo_init+0x8>
 8000bd0:	ed95 7a03 	vldr	s14, [r5, #12]
 8000bd4:	eeb0 0a47 	vmov.f32	s0, s14
 8000bd8:	f7ff fe5c 	bl	8000894 <finite_value>
 8000bdc:	4604      	mov	r4, r0
 8000bde:	2800      	cmp	r0, #0
 8000be0:	d0b7      	beq.n	8000b52 <drill_smo_init+0xa>
 8000be2:	eeb5 7ac0 	vcmpe.f32	s14, #0.0
 8000be6:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000bea:	d9b1      	bls.n	8000b50 <drill_smo_init+0x8>
 8000bec:	ed95 0a04 	vldr	s0, [r5, #16]
 8000bf0:	f7ff fe50 	bl	8000894 <finite_value>
 8000bf4:	4604      	mov	r4, r0
 8000bf6:	2800      	cmp	r0, #0
 8000bf8:	d0ab      	beq.n	8000b52 <drill_smo_init+0xa>
 8000bfa:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000bfe:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c02:	d9a5      	bls.n	8000b50 <drill_smo_init+0x8>
 8000c04:	eddf 7a74 	vldr	s15, [pc, #464]	@ 8000dd8 <drill_smo_init+0x290>
 8000c08:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000c0c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c10:	dc9e      	bgt.n	8000b50 <drill_smo_init+0x8>
 8000c12:	ed95 0a05 	vldr	s0, [r5, #20]
 8000c16:	f7ff fe3d 	bl	8000894 <finite_value>
 8000c1a:	4604      	mov	r4, r0
 8000c1c:	2800      	cmp	r0, #0
 8000c1e:	d098      	beq.n	8000b52 <drill_smo_init+0xa>
 8000c20:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000c24:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c28:	d992      	bls.n	8000b50 <drill_smo_init+0x8>
 8000c2a:	eddf 7a6c 	vldr	s15, [pc, #432]	@ 8000ddc <drill_smo_init+0x294>
 8000c2e:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000c32:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c36:	dc8b      	bgt.n	8000b50 <drill_smo_init+0x8>
 8000c38:	ed95 0a06 	vldr	s0, [r5, #24]
 8000c3c:	f7ff fe2a 	bl	8000894 <finite_value>
 8000c40:	4604      	mov	r4, r0
 8000c42:	2800      	cmp	r0, #0
 8000c44:	d085      	beq.n	8000b52 <drill_smo_init+0xa>
 8000c46:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000c4a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c4e:	f67f af7f 	bls.w	8000b50 <drill_smo_init+0x8>
 8000c52:	eddf 7a63 	vldr	s15, [pc, #396]	@ 8000de0 <drill_smo_init+0x298>
 8000c56:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000c5a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c5e:	f73f af77 	bgt.w	8000b50 <drill_smo_init+0x8>
 8000c62:	edd5 6a07 	vldr	s13, [r5, #28]
 8000c66:	eeb0 0a66 	vmov.f32	s0, s13
 8000c6a:	f7ff fe13 	bl	8000894 <finite_value>
 8000c6e:	4604      	mov	r4, r0
 8000c70:	2800      	cmp	r0, #0
 8000c72:	f43f af6e 	beq.w	8000b52 <drill_smo_init+0xa>
 8000c76:	eef5 6ac0 	vcmpe.f32	s13, #0.0
 8000c7a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c7e:	f67f af67 	bls.w	8000b50 <drill_smo_init+0x8>
 8000c82:	ed95 0a08 	vldr	s0, [r5, #32]
 8000c86:	f7ff fe05 	bl	8000894 <finite_value>
 8000c8a:	4604      	mov	r4, r0
 8000c8c:	2800      	cmp	r0, #0
 8000c8e:	f43f af60 	beq.w	8000b52 <drill_smo_init+0xa>
 8000c92:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000c96:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000c9a:	f67f af59 	bls.w	8000b50 <drill_smo_init+0x8>
 8000c9e:	eeb4 0ac6 	vcmpe.f32	s0, s12
 8000ca2:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000ca6:	f73f af53 	bgt.w	8000b50 <drill_smo_init+0x8>
 8000caa:	eef4 6ac0 	vcmpe.f32	s13, s0
 8000cae:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000cb2:	f6bf af4d 	bge.w	8000b50 <drill_smo_init+0x8>
 8000cb6:	ed95 0a09 	vldr	s0, [r5, #36]	@ 0x24
 8000cba:	f7ff fdeb 	bl	8000894 <finite_value>
 8000cbe:	4604      	mov	r4, r0
 8000cc0:	2800      	cmp	r0, #0
 8000cc2:	f43f af46 	beq.w	8000b52 <drill_smo_init+0xa>
 8000cc6:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000cca:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000cce:	f67f af3f 	bls.w	8000b50 <drill_smo_init+0x8>
 8000cd2:	eef2 7a00 	vmov.f32	s15, #32	@ 0x41000000  8.0
 8000cd6:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000cda:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000cde:	f73f af37 	bgt.w	8000b50 <drill_smo_init+0x8>
 8000ce2:	eeb4 7ac0 	vcmpe.f32	s14, s0
 8000ce6:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000cea:	f73f af31 	bgt.w	8000b50 <drill_smo_init+0x8>
 8000cee:	edd5 6a0a 	vldr	s13, [r5, #40]	@ 0x28
 8000cf2:	eeb0 0a66 	vmov.f32	s0, s13
 8000cf6:	f7ff fdcd 	bl	8000894 <finite_value>
 8000cfa:	4604      	mov	r4, r0
 8000cfc:	2800      	cmp	r0, #0
 8000cfe:	f43f af28 	beq.w	8000b52 <drill_smo_init+0xa>
 8000d02:	eef5 6ac0 	vcmpe.f32	s13, #0.0
 8000d06:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000d0a:	f67f af21 	bls.w	8000b50 <drill_smo_init+0x8>
 8000d0e:	eddf 7a35 	vldr	s15, [pc, #212]	@ 8000de4 <drill_smo_init+0x29c>
 8000d12:	eef4 6ae7 	vcmpe.f32	s13, s15
 8000d16:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000d1a:	f73f af19 	bgt.w	8000b50 <drill_smo_init+0x8>
 8000d1e:	ed95 7a0b 	vldr	s14, [r5, #44]	@ 0x2c
 8000d22:	eeb0 0a47 	vmov.f32	s0, s14
 8000d26:	f7ff fdb5 	bl	8000894 <finite_value>
 8000d2a:	4604      	mov	r4, r0
 8000d2c:	2800      	cmp	r0, #0
 8000d2e:	f43f af10 	beq.w	8000b52 <drill_smo_init+0xa>
 8000d32:	eeb5 7ac0 	vcmpe.f32	s14, #0.0
 8000d36:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000d3a:	f67f af09 	bls.w	8000b50 <drill_smo_init+0x8>
 8000d3e:	eddf 7a2a 	vldr	s15, [pc, #168]	@ 8000de8 <drill_smo_init+0x2a0>
 8000d42:	eeb4 7ae7 	vcmpe.f32	s14, s15
 8000d46:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000d4a:	f73f af01 	bgt.w	8000b50 <drill_smo_init+0x8>
 8000d4e:	ed95 0a0c 	vldr	s0, [r5, #48]	@ 0x30
 8000d52:	f7ff fd9f 	bl	8000894 <finite_value>
 8000d56:	4604      	mov	r4, r0
 8000d58:	2800      	cmp	r0, #0
 8000d5a:	f43f aefa 	beq.w	8000b52 <drill_smo_init+0xa>
 8000d5e:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8000d62:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000d66:	f67f aef3 	bls.w	8000b50 <drill_smo_init+0x8>
 8000d6a:	eddf 7a20 	vldr	s15, [pc, #128]	@ 8000dec <drill_smo_init+0x2a4>
 8000d6e:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000d72:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000d76:	f6bf aeeb 	bge.w	8000b50 <drill_smo_init+0x8>
 8000d7a:	f895 3034 	ldrb.w	r3, [r5, #52]	@ 0x34
 8000d7e:	1e5a      	subs	r2, r3, #1
 8000d80:	2a1f      	cmp	r2, #31
 8000d82:	f63f aee5 	bhi.w	8000b50 <drill_smo_init+0x8>
 8000d86:	f895 2035 	ldrb.w	r2, [r5, #53]	@ 0x35
 8000d8a:	2a03      	cmp	r2, #3
 8000d8c:	f67f aee0 	bls.w	8000b50 <drill_smo_init+0x8>
 8000d90:	ee07 3a90 	vmov	s15, r3
 8000d94:	eeb8 0a67 	vcvt.f32.u32	s0, s15
 8000d98:	eef3 7a0e 	vmov.f32	s15, #62	@ 0x41f00000  30.0
 8000d9c:	ee20 0a26 	vmul.f32	s0, s0, s13
 8000da0:	ee20 0a07 	vmul.f32	s0, s0, s14
 8000da4:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8000da8:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000dac:	f6bf aed0 	bge.w	8000b50 <drill_smo_init+0x8>
 8000db0:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8000db2:	4637      	mov	r7, r6
 8000db4:	c70f      	stmia	r7!, {r0, r1, r2, r3}
 8000db6:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8000db8:	c70f      	stmia	r7!, {r0, r1, r2, r3}
 8000dba:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8000dbc:	c70f      	stmia	r7!, {r0, r1, r2, r3}
 8000dbe:	e895 0003 	ldmia.w	r5, {r0, r1}
 8000dc2:	2301      	movs	r3, #1
 8000dc4:	e887 0003 	stmia.w	r7, {r0, r1}
 8000dc8:	f886 305b 	strb.w	r3, [r6, #91]	@ 0x5b
 8000dcc:	e6c1      	b.n	8000b52 <drill_smo_init+0xa>
 8000dce:	bf00      	nop
 8000dd0:	42c80000 	.word	0x42c80000
 8000dd4:	447a0000 	.word	0x447a0000
 8000dd8:	3c23d70a 	.word	0x3c23d70a
 8000ddc:	47435000 	.word	0x47435000
 8000de0:	4e6e6b28 	.word	0x4e6e6b28
 8000de4:	48435000 	.word	0x48435000
 8000de8:	38d1b717 	.word	0x38d1b717
 8000dec:	3fc90fdb 	.word	0x3fc90fdb

08000df0 <drill_smo_step>:
 8000df0:	b5f0      	push	{r4, r5, r6, r7, lr}
 8000df2:	ed2d 8b02 	vpush	{d8}
 8000df6:	4604      	mov	r4, r0
 8000df8:	b083      	sub	sp, #12
 8000dfa:	460f      	mov	r7, r1
 8000dfc:	4615      	mov	r5, r2
 8000dfe:	b122      	cbz	r2, 8000e0a <drill_smo_step+0x1a>
 8000e00:	2224      	movs	r2, #36	@ 0x24
 8000e02:	2100      	movs	r1, #0
 8000e04:	4628      	mov	r0, r5
 8000e06:	f7ff fb3a 	bl	800047e <memset>
 8000e0a:	2c00      	cmp	r4, #0
 8000e0c:	f000 80e7 	beq.w	8000fde <drill_smo_step+0x1ee>
 8000e10:	f894 605b 	ldrb.w	r6, [r4, #91]	@ 0x5b
 8000e14:	2e00      	cmp	r6, #0
 8000e16:	f000 80e3 	beq.w	8000fe0 <drill_smo_step+0x1f0>
 8000e1a:	2d00      	cmp	r5, #0
 8000e1c:	f000 80dc 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 8000e20:	2f00      	cmp	r7, #0
 8000e22:	f000 80d9 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 8000e26:	edd7 6a00 	vldr	s13, [r7]
 8000e2a:	eeb0 0a66 	vmov.f32	s0, s13
 8000e2e:	f7ff fd31 	bl	8000894 <finite_value>
 8000e32:	2800      	cmp	r0, #0
 8000e34:	f000 80d0 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 8000e38:	ed97 7a01 	vldr	s14, [r7, #4]
 8000e3c:	eeb0 0a47 	vmov.f32	s0, s14
 8000e40:	f7ff fd28 	bl	8000894 <finite_value>
 8000e44:	2800      	cmp	r0, #0
 8000e46:	f000 80c7 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 8000e4a:	edd7 5a02 	vldr	s11, [r7, #8]
 8000e4e:	eeb0 0a65 	vmov.f32	s0, s11
 8000e52:	f7ff fd1f 	bl	8000894 <finite_value>
 8000e56:	2800      	cmp	r0, #0
 8000e58:	f000 80be 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 8000e5c:	ed97 6a03 	vldr	s12, [r7, #12]
 8000e60:	eeb0 0a46 	vmov.f32	s0, s12
 8000e64:	f7ff fd16 	bl	8000894 <finite_value>
 8000e68:	2800      	cmp	r0, #0
 8000e6a:	f000 80b5 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 8000e6e:	edd7 2a04 	vldr	s5, [r7, #16]
 8000e72:	eeb0 0a62 	vmov.f32	s0, s5
 8000e76:	f7ff fd0d 	bl	8000894 <finite_value>
 8000e7a:	2800      	cmp	r0, #0
 8000e7c:	f000 80ac 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 8000e80:	eef5 2ac0 	vcmpe.f32	s5, #0.0
 8000e84:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000e88:	f340 80a6 	ble.w	8000fd8 <drill_smo_step+0x1e8>
 8000e8c:	edd4 7a0b 	vldr	s15, [r4, #44]	@ 0x2c
 8000e90:	eef4 2ae7 	vcmpe.f32	s5, s15
 8000e94:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000e98:	f200 809e 	bhi.w	8000fd8 <drill_smo_step+0x1e8>
 8000e9c:	f997 3014 	ldrsb.w	r3, [r7, #20]
 8000ea0:	2b01      	cmp	r3, #1
 8000ea2:	d002      	beq.n	8000eaa <drill_smo_step+0xba>
 8000ea4:	1c5a      	adds	r2, r3, #1
 8000ea6:	f040 8097 	bne.w	8000fd8 <drill_smo_step+0x1e8>
 8000eaa:	eef5 5ac0 	vcmpe.f32	s11, #0.0
 8000eae:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000eb2:	f140 8085 	bpl.w	8000fc0 <drill_smo_step+0x1d0>
 8000eb6:	eef1 7a65 	vneg.f32	s15, s11
 8000eba:	ed94 4a09 	vldr	s8, [r4, #36]	@ 0x24
 8000ebe:	eeb4 4ae7 	vcmpe.f32	s8, s15
 8000ec2:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000ec6:	f2c0 8087 	blt.w	8000fd8 <drill_smo_step+0x1e8>
 8000eca:	eeb5 6ac0 	vcmpe.f32	s12, #0.0
 8000ece:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000ed2:	d578      	bpl.n	8000fc6 <drill_smo_step+0x1d6>
 8000ed4:	eef1 7a46 	vneg.f32	s15, s12
 8000ed8:	eeb4 4ae7 	vcmpe.f32	s8, s15
 8000edc:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000ee0:	db7a      	blt.n	8000fd8 <drill_smo_step+0x1e8>
 8000ee2:	ee66 7a06 	vmul.f32	s15, s12, s12
 8000ee6:	ee45 7aa5 	vmla.f32	s15, s11, s11
 8000eea:	ee24 5a04 	vmul.f32	s10, s8, s8
 8000eee:	eef4 7ac5 	vcmpe.f32	s15, s10
 8000ef2:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000ef6:	d86f      	bhi.n	8000fd8 <drill_smo_step+0x1e8>
 8000ef8:	eef5 6ac0 	vcmpe.f32	s13, #0.0
 8000efc:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000f00:	d564      	bpl.n	8000fcc <drill_smo_step+0x1dc>
 8000f02:	eeb1 5a66 	vneg.f32	s10, s13
 8000f06:	edd4 7a08 	vldr	s15, [r4, #32]
 8000f0a:	eef4 7ac5 	vcmpe.f32	s15, s10
 8000f0e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000f12:	db61      	blt.n	8000fd8 <drill_smo_step+0x1e8>
 8000f14:	eeb5 7ac0 	vcmpe.f32	s14, #0.0
 8000f18:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000f1c:	d559      	bpl.n	8000fd2 <drill_smo_step+0x1e2>
 8000f1e:	eeb1 5a47 	vneg.f32	s10, s14
 8000f22:	eef4 7ac5 	vcmpe.f32	s15, s10
 8000f26:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000f2a:	db55      	blt.n	8000fd8 <drill_smo_step+0x1e8>
 8000f2c:	ee27 5a07 	vmul.f32	s10, s14, s14
 8000f30:	ee06 5aa6 	vmla.f32	s10, s13, s13
 8000f34:	ee67 7aa7 	vmul.f32	s15, s15, s15
 8000f38:	eeb4 5ae7 	vcmpe.f32	s10, s15
 8000f3c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000f40:	d84a      	bhi.n	8000fd8 <drill_smo_step+0x1e8>
 8000f42:	ed94 5a01 	vldr	s10, [r4, #4]
 8000f46:	ed94 3a03 	vldr	s6, [r4, #12]
 8000f4a:	edd4 8a02 	vldr	s17, [r4, #8]
 8000f4e:	edd4 4a00 	vldr	s9, [r4]
 8000f52:	edd4 1a0e 	vldr	s3, [r4, #56]	@ 0x38
 8000f56:	eec2 7a85 	vdiv.f32	s15, s5, s10
 8000f5a:	ee88 5a83 	vdiv.f32	s10, s17, s6
 8000f5e:	eef7 3a00 	vmov.f32	s7, #112	@ 0x3f800000  1.0
 8000f62:	eeb0 1a63 	vmov.f32	s2, s7
 8000f66:	ee07 1aa4 	vmla.f32	s2, s15, s9
 8000f6a:	eef0 4a66 	vmov.f32	s9, s13
 8000f6e:	ee45 4a25 	vmla.f32	s9, s10, s11
 8000f72:	eeb0 8a41 	vmov.f32	s16, s2
 8000f76:	eeb0 2a61 	vmov.f32	s4, s3
 8000f7a:	ee07 8a85 	vmla.f32	s16, s15, s10
 8000f7e:	ee04 2aa7 	vmla.f32	s4, s9, s15
 8000f82:	eeb0 0a47 	vmov.f32	s0, s14
 8000f86:	eec2 4a08 	vdiv.f32	s9, s4, s16
 8000f8a:	ee05 0a06 	vmla.f32	s0, s10, s12
 8000f8e:	ed94 2a0f 	vldr	s4, [r4, #60]	@ 0x3c
 8000f92:	eef0 0a42 	vmov.f32	s1, s4
 8000f96:	ee40 0a27 	vmla.f32	s1, s0, s15
 8000f9a:	ee80 5a88 	vdiv.f32	s10, s1, s16
 8000f9e:	ee74 0ae5 	vsub.f32	s1, s9, s11
 8000fa2:	eeb4 3ae0 	vcmpe.f32	s6, s1
 8000fa6:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000faa:	d41e      	bmi.n	8000fea <drill_smo_step+0x1fa>
 8000fac:	eeb1 0a43 	vneg.f32	s0, s6
 8000fb0:	eef4 0ac0 	vcmpe.f32	s1, s0
 8000fb4:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8000fb8:	d51d      	bpl.n	8000ff6 <drill_smo_step+0x206>
 8000fba:	ee78 6aa6 	vadd.f32	s13, s17, s13
 8000fbe:	e016      	b.n	8000fee <drill_smo_step+0x1fe>
 8000fc0:	eef0 7a65 	vmov.f32	s15, s11
 8000fc4:	e779      	b.n	8000eba <drill_smo_step+0xca>
 8000fc6:	eef0 7a46 	vmov.f32	s15, s12
 8000fca:	e785      	b.n	8000ed8 <drill_smo_step+0xe8>
 8000fcc:	eeb0 5a66 	vmov.f32	s10, s13
 8000fd0:	e799      	b.n	8000f06 <drill_smo_step+0x116>
 8000fd2:	eeb0 5a47 	vmov.f32	s10, s14
 8000fd6:	e7a4      	b.n	8000f22 <drill_smo_step+0x132>
 8000fd8:	4620      	mov	r0, r4
 8000fda:	f7ff fd9f 	bl	8000b1c <drill_smo_reset>
 8000fde:	2600      	movs	r6, #0
 8000fe0:	4630      	mov	r0, r6
 8000fe2:	b003      	add	sp, #12
 8000fe4:	ecbd 8b02 	vpop	{d8}
 8000fe8:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8000fea:	ee76 6ae8 	vsub.f32	s13, s13, s17
 8000fee:	ee46 1aa7 	vmla.f32	s3, s13, s15
 8000ff2:	eec1 4a81 	vdiv.f32	s9, s3, s2
 8000ff6:	ee75 6a46 	vsub.f32	s13, s10, s12
 8000ffa:	eeb4 3ae6 	vcmpe.f32	s6, s13
 8000ffe:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001002:	f140 8095 	bpl.w	8001130 <drill_smo_step+0x340>
 8001006:	ee37 7a68 	vsub.f32	s14, s14, s17
 800100a:	ee07 2a27 	vmla.f32	s4, s14, s15
 800100e:	ee82 5a01 	vdiv.f32	s10, s4, s2
 8001012:	ee34 0ae5 	vsub.f32	s0, s9, s11
 8001016:	eebf 7a00 	vmov.f32	s14, #240	@ 0xbf800000 -1.0
 800101a:	eec0 7a03 	vdiv.f32	s15, s0, s6
 800101e:	eef4 7ac7 	vcmpe.f32	s15, s14
 8001022:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001026:	f100 808e 	bmi.w	8001146 <drill_smo_step+0x356>
 800102a:	eef4 7ae3 	vcmpe.f32	s15, s7
 800102e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001032:	bfd4      	ite	le
 8001034:	eef0 5a67 	vmovle.f32	s11, s15
 8001038:	eef0 5a63 	vmovgt.f32	s11, s7
 800103c:	ee35 0a46 	vsub.f32	s0, s10, s12
 8001040:	eec0 7a03 	vdiv.f32	s15, s0, s6
 8001044:	eef4 7ac7 	vcmpe.f32	s15, s14
 8001048:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800104c:	d47e      	bmi.n	800114c <drill_smo_step+0x35c>
 800104e:	eef4 7ae3 	vcmpe.f32	s15, s7
 8001052:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001056:	bfd4      	ite	le
 8001058:	eef0 6a67 	vmovle.f32	s13, s15
 800105c:	eef0 6a63 	vmovgt.f32	s13, s7
 8001060:	edc4 4a0e 	vstr	s9, [r4, #56]	@ 0x38
 8001064:	ed84 5a0f 	vstr	s10, [r4, #60]	@ 0x3c
 8001068:	eeb0 0a64 	vmov.f32	s0, s9
 800106c:	f7ff fc12 	bl	8000894 <finite_value>
 8001070:	2800      	cmp	r0, #0
 8001072:	d0b1      	beq.n	8000fd8 <drill_smo_step+0x1e8>
 8001074:	eeb0 0a45 	vmov.f32	s0, s10
 8001078:	f7ff fc0c 	bl	8000894 <finite_value>
 800107c:	2800      	cmp	r0, #0
 800107e:	d0ab      	beq.n	8000fd8 <drill_smo_step+0x1e8>
 8001080:	eef5 4ac0 	vcmpe.f32	s9, #0.0
 8001084:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001088:	d501      	bpl.n	800108e <drill_smo_step+0x29e>
 800108a:	eef1 4a64 	vneg.f32	s9, s9
 800108e:	ee34 4a04 	vadd.f32	s8, s8, s8
 8001092:	eeb4 4ae4 	vcmpe.f32	s8, s9
 8001096:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800109a:	d49d      	bmi.n	8000fd8 <drill_smo_step+0x1e8>
 800109c:	eeb5 5ac0 	vcmpe.f32	s10, #0.0
 80010a0:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80010a4:	d501      	bpl.n	80010aa <drill_smo_step+0x2ba>
 80010a6:	eeb1 5a45 	vneg.f32	s10, s10
 80010aa:	eeb4 4ac5 	vcmpe.f32	s8, s10
 80010ae:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80010b2:	d491      	bmi.n	8000fd8 <drill_smo_step+0x1e8>
 80010b4:	edd4 7a04 	vldr	s15, [r4, #16]
 80010b8:	ed94 7a10 	vldr	s14, [r4, #64]	@ 0x40
 80010bc:	edd4 0a11 	vldr	s1, [r4, #68]	@ 0x44
 80010c0:	ee72 7aa7 	vadd.f32	s15, s5, s15
 80010c4:	ee82 1aa7 	vdiv.f32	s2, s5, s15
 80010c8:	eef0 7a47 	vmov.f32	s15, s14
 80010cc:	ee58 7aa5 	vnmls.f32	s15, s17, s11
 80010d0:	ee07 7a81 	vmla.f32	s14, s15, s2
 80010d4:	eef0 7a60 	vmov.f32	s15, s1
 80010d8:	ee58 7aa6 	vnmls.f32	s15, s17, s13
 80010dc:	ed84 7a10 	vstr	s14, [r4, #64]	@ 0x40
 80010e0:	ee47 0a81 	vmla.f32	s1, s15, s2
 80010e4:	ee20 0aa0 	vmul.f32	s0, s1, s1
 80010e8:	ee07 0a07 	vmla.f32	s0, s14, s14
 80010ec:	edc4 0a11 	vstr	s1, [r4, #68]	@ 0x44
 80010f0:	f7ff fbd0 	bl	8000894 <finite_value>
 80010f4:	4606      	mov	r6, r0
 80010f6:	2800      	cmp	r0, #0
 80010f8:	f43f af6e 	beq.w	8000fd8 <drill_smo_step+0x1e8>
 80010fc:	edd4 7a07 	vldr	s15, [r4, #28]
 8001100:	ee67 7aa7 	vmul.f32	s15, s15, s15
 8001104:	eef4 7ac0 	vcmpe.f32	s15, s0
 8001108:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800110c:	dd21      	ble.n	8001152 <drill_smo_step+0x362>
 800110e:	2300      	movs	r3, #0
 8001110:	2200      	movs	r2, #0
 8001112:	f8a4 305c 	strh.w	r3, [r4, #92]	@ 0x5c
 8001116:	6562      	str	r2, [r4, #84]	@ 0x54
 8001118:	f8a4 3058 	strh.w	r3, [r4, #88]	@ 0x58
 800111c:	f884 305a 	strb.w	r3, [r4, #90]	@ 0x5a
 8001120:	ed85 7a03 	vstr	s14, [r5, #12]
 8001124:	edc5 0a04 	vstr	s1, [r5, #16]
 8001128:	2301      	movs	r3, #1
 800112a:	f885 3022 	strb.w	r3, [r5, #34]	@ 0x22
 800112e:	e757      	b.n	8000fe0 <drill_smo_step+0x1f0>
 8001130:	eef1 1a43 	vneg.f32	s3, s6
 8001134:	eef4 6ae1 	vcmpe.f32	s13, s3
 8001138:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800113c:	f57f af69 	bpl.w	8001012 <drill_smo_step+0x222>
 8001140:	ee38 7a87 	vadd.f32	s14, s17, s14
 8001144:	e761      	b.n	800100a <drill_smo_step+0x21a>
 8001146:	eef0 5a47 	vmov.f32	s11, s14
 800114a:	e777      	b.n	800103c <drill_smo_step+0x24c>
 800114c:	eeff 6a00 	vmov.f32	s13, #240	@ 0xbf800000 -1.0
 8001150:	e786      	b.n	8001060 <drill_smo_step+0x270>
 8001152:	ee07 3a90 	vmov	s15, r3
 8001156:	eeb8 2ae7 	vcvt.f32.s32	s4, s15
 800115a:	ee60 0a82 	vmul.f32	s1, s1, s4
 800115e:	ee22 0a47 	vnmul.f32	s0, s4, s14
 8001162:	f7ff fbd3 	bl	800090c <atan2_cordic>
 8001166:	f894 3034 	ldrb.w	r3, [r4, #52]	@ 0x34
 800116a:	eddf 7aa0 	vldr	s15, [pc, #640]	@ 80013ec <drill_smo_step+0x5fc>
 800116e:	f894 705d 	ldrb.w	r7, [r4, #93]	@ 0x5d
 8001172:	ee03 3a10 	vmov	s6, r3
 8001176:	eeb8 3a43 	vcvt.f32.u32	s6, s6
 800117a:	eef0 8a40 	vmov.f32	s17, s0
 800117e:	ee23 3a27 	vmul.f32	s6, s6, s15
 8001182:	edd4 7a0a 	vldr	s15, [r4, #40]	@ 0x28
 8001186:	ee23 3a27 	vmul.f32	s6, s6, s15
 800118a:	bb5f      	cbnz	r7, 80011e4 <drill_smo_step+0x3f4>
 800118c:	f894 3058 	ldrb.w	r3, [r4, #88]	@ 0x58
 8001190:	b32b      	cbz	r3, 80011de <drill_smo_step+0x3ee>
 8001192:	ed94 0a14 	vldr	s0, [r4, #80]	@ 0x50
 8001196:	ee38 0ac0 	vsub.f32	s0, s17, s0
 800119a:	f7ff fb97 	bl	80008cc <wrap_pi>
 800119e:	ee80 7a22 	vdiv.f32	s14, s0, s5
 80011a2:	edd4 7a15 	vldr	s15, [r4, #84]	@ 0x54
 80011a6:	ee37 7a67 	vsub.f32	s14, s14, s15
 80011aa:	eef4 6a00 	vmov.f32	s13, #64	@ 0x3e000000  0.125
 80011ae:	ee47 7a26 	vmla.f32	s15, s14, s13
 80011b2:	eeb1 7a43 	vneg.f32	s14, s6
 80011b6:	eef4 7ac7 	vcmpe.f32	s15, s14
 80011ba:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80011be:	edc4 7a15 	vstr	s15, [r4, #84]	@ 0x54
 80011c2:	d408      	bmi.n	80011d6 <drill_smo_step+0x3e6>
 80011c4:	eef4 7ac3 	vcmpe.f32	s15, s6
 80011c8:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80011cc:	bfd4      	ite	le
 80011ce:	eeb0 7a67 	vmovle.f32	s14, s15
 80011d2:	eeb0 7a43 	vmovgt.f32	s14, s6
 80011d6:	2bff      	cmp	r3, #255	@ 0xff
 80011d8:	ed84 7a13 	vstr	s14, [r4, #76]	@ 0x4c
 80011dc:	d002      	beq.n	80011e4 <drill_smo_step+0x3f4>
 80011de:	3301      	adds	r3, #1
 80011e0:	f884 3058 	strb.w	r3, [r4, #88]	@ 0x58
 80011e4:	eec3 1a88 	vdiv.f32	s3, s7, s16
 80011e8:	a901      	add	r1, sp, #4
 80011ea:	4668      	mov	r0, sp
 80011ec:	ed94 8a13 	vldr	s16, [r4, #76]	@ 0x4c
 80011f0:	edc4 8a14 	vstr	s17, [r4, #80]	@ 0x50
 80011f4:	ee28 0a22 	vmul.f32	s0, s16, s5
 80011f8:	f7ff fbe0 	bl	80009bc <drill_smo_sincos>
 80011fc:	ee33 1ac1 	vsub.f32	s2, s7, s2
 8001200:	eddd 6a01 	vldr	s13, [sp, #4]
 8001204:	ed9d 7a00 	vldr	s14, [sp]
 8001208:	eeb0 6a63 	vmov.f32	s12, s7
 800120c:	ee06 6ae1 	vmls.f32	s12, s13, s3
 8001210:	ee61 0a81 	vmul.f32	s1, s3, s2
 8001214:	ee31 0a81 	vadd.f32	s0, s3, s2
 8001218:	ee71 1aa1 	vadd.f32	s3, s3, s3
 800121c:	eef0 7a63 	vmov.f32	s15, s7
 8001220:	ee61 1a81 	vmul.f32	s3, s3, s2
 8001224:	ee46 7ac1 	vmls.f32	s15, s13, s2
 8001228:	ee01 0ae6 	vmls.f32	s0, s3, s13
 800122c:	ee60 0a87 	vmul.f32	s1, s1, s14
 8001230:	ee20 0a07 	vmul.f32	s0, s0, s14
 8001234:	ee60 0a87 	vmul.f32	s1, s1, s14
 8001238:	ee56 0a27 	vnmls.f32	s1, s12, s15
 800123c:	f7ff fb66 	bl	800090c <atan2_cordic>
 8001240:	ee38 0a80 	vadd.f32	s0, s17, s0
 8001244:	f7ff fb42 	bl	80008cc <wrap_pi>
 8001248:	f894 305c 	ldrb.w	r3, [r4, #92]	@ 0x5c
 800124c:	b963      	cbnz	r3, 8001268 <drill_smo_step+0x478>
 800124e:	2301      	movs	r3, #1
 8001250:	eddf 3a67 	vldr	s7, [pc, #412]	@ 80013f0 <drill_smo_step+0x600>
 8001254:	ed84 0a12 	vstr	s0, [r4, #72]	@ 0x48
 8001258:	f884 305c 	strb.w	r3, [r4, #92]	@ 0x5c
 800125c:	2f00      	cmp	r7, #0
 800125e:	f040 80c0 	bne.w	80013e2 <drill_smo_step+0x5f2>
 8001262:	eef0 7a63 	vmov.f32	s15, s7
 8001266:	e042      	b.n	80012ee <drill_smo_step+0x4fe>
 8001268:	edd4 6a12 	vldr	s13, [r4, #72]	@ 0x48
 800126c:	ee30 0a66 	vsub.f32	s0, s0, s13
 8001270:	f7ff fb2c 	bl	80008cc <wrap_pi>
 8001274:	edd4 7a06 	vldr	s15, [r4, #24]
 8001278:	ee60 7a27 	vmul.f32	s15, s0, s15
 800127c:	eeb0 7a48 	vmov.f32	s14, s16
 8001280:	ee07 7aa2 	vmla.f32	s14, s15, s5
 8001284:	eef1 7a43 	vneg.f32	s15, s6
 8001288:	eeb4 7ae7 	vcmpe.f32	s14, s15
 800128c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001290:	eef0 3a40 	vmov.f32	s7, s0
 8001294:	d408      	bmi.n	80012a8 <drill_smo_step+0x4b8>
 8001296:	eeb4 7ac3 	vcmpe.f32	s14, s6
 800129a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800129e:	bfd4      	ite	le
 80012a0:	eef0 7a47 	vmovle.f32	s15, s14
 80012a4:	eef0 7a43 	vmovgt.f32	s15, s6
 80012a8:	ed94 6a05 	vldr	s12, [r4, #20]
 80012ac:	edc4 7a13 	vstr	s15, [r4, #76]	@ 0x4c
 80012b0:	ee43 7a86 	vmla.f32	s15, s7, s12
 80012b4:	eeb0 7a67 	vmov.f32	s14, s15
 80012b8:	eef0 7a66 	vmov.f32	s15, s13
 80012bc:	ee47 7a22 	vmla.f32	s15, s14, s5
 80012c0:	ed9f 7a4c 	vldr	s14, [pc, #304]	@ 80013f4 <drill_smo_step+0x604>
 80012c4:	eef4 7ac7 	vcmpe.f32	s15, s14
 80012c8:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80012cc:	da5d      	bge.n	800138a <drill_smo_step+0x59a>
 80012ce:	eef5 7ac0 	vcmpe.f32	s15, #0.0
 80012d2:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80012d6:	d45b      	bmi.n	8001390 <drill_smo_step+0x5a0>
 80012d8:	edc4 7a12 	vstr	s15, [r4, #72]	@ 0x48
 80012dc:	eef5 3ac0 	vcmpe.f32	s7, #0.0
 80012e0:	2f00      	cmp	r7, #0
 80012e2:	d15c      	bne.n	800139e <drill_smo_step+0x5ae>
 80012e4:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80012e8:	d5bb      	bpl.n	8001262 <drill_smo_step+0x472>
 80012ea:	eef1 7a63 	vneg.f32	s15, s7
 80012ee:	ed94 7a0c 	vldr	s14, [r4, #48]	@ 0x30
 80012f2:	eeb4 7ae7 	vcmpe.f32	s14, s15
 80012f6:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80012fa:	db4c      	blt.n	8001396 <drill_smo_step+0x5a6>
 80012fc:	edd4 7a13 	vldr	s15, [r4, #76]	@ 0x4c
 8001300:	ee22 2a27 	vmul.f32	s4, s4, s15
 8001304:	eeb5 2ac0 	vcmpe.f32	s4, #0.0
 8001308:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800130c:	dd43      	ble.n	8001396 <drill_smo_step+0x5a6>
 800130e:	f894 3058 	ldrb.w	r3, [r4, #88]	@ 0x58
 8001312:	2b0f      	cmp	r3, #15
 8001314:	d93f      	bls.n	8001396 <drill_smo_step+0x5a6>
 8001316:	f894 3059 	ldrb.w	r3, [r4, #89]	@ 0x59
 800131a:	f894 2035 	ldrb.w	r2, [r4, #53]	@ 0x35
 800131e:	4293      	cmp	r3, r2
 8001320:	d205      	bcs.n	800132e <drill_smo_step+0x53e>
 8001322:	3301      	adds	r3, #1
 8001324:	b2db      	uxtb	r3, r3
 8001326:	429a      	cmp	r2, r3
 8001328:	f884 3059 	strb.w	r3, [r4, #89]	@ 0x59
 800132c:	d802      	bhi.n	8001334 <drill_smo_step+0x544>
 800132e:	2301      	movs	r3, #1
 8001330:	f884 305d 	strb.w	r3, [r4, #93]	@ 0x5d
 8001334:	ed94 0a12 	vldr	s0, [r4, #72]	@ 0x48
 8001338:	f105 011c 	add.w	r1, r5, #28
 800133c:	f105 0018 	add.w	r0, r5, #24
 8001340:	f7ff fb3c 	bl	80009bc <drill_smo_sincos>
 8001344:	edd4 7a13 	vldr	s15, [r4, #76]	@ 0x4c
 8001348:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 800134a:	602b      	str	r3, [r5, #0]
 800134c:	edc5 7a01 	vstr	s15, [r5, #4]
 8001350:	f894 3034 	ldrb.w	r3, [r4, #52]	@ 0x34
 8001354:	ed9f 7a28 	vldr	s14, [pc, #160]	@ 80013f8 <drill_smo_step+0x608>
 8001358:	ee67 7a87 	vmul.f32	s15, s15, s14
 800135c:	ee07 3a10 	vmov	s14, r3
 8001360:	eeb8 7a47 	vcvt.f32.u32	s14, s14
 8001364:	6c23      	ldr	r3, [r4, #64]	@ 0x40
 8001366:	60eb      	str	r3, [r5, #12]
 8001368:	eec7 6a87 	vdiv.f32	s13, s15, s14
 800136c:	6c63      	ldr	r3, [r4, #68]	@ 0x44
 800136e:	612b      	str	r3, [r5, #16]
 8001370:	f894 305c 	ldrb.w	r3, [r4, #92]	@ 0x5c
 8001374:	f885 3020 	strb.w	r3, [r5, #32]
 8001378:	f894 305d 	ldrb.w	r3, [r4, #93]	@ 0x5d
 800137c:	f885 3021 	strb.w	r3, [r5, #33]	@ 0x21
 8001380:	edc5 3a05 	vstr	s7, [r5, #20]
 8001384:	edc5 6a02 	vstr	s13, [r5, #8]
 8001388:	e6ce      	b.n	8001128 <drill_smo_step+0x338>
 800138a:	ee77 7ac7 	vsub.f32	s15, s15, s14
 800138e:	e799      	b.n	80012c4 <drill_smo_step+0x4d4>
 8001390:	ee77 7a87 	vadd.f32	s15, s15, s14
 8001394:	e79b      	b.n	80012ce <drill_smo_step+0x4de>
 8001396:	2300      	movs	r3, #0
 8001398:	f884 3059 	strb.w	r3, [r4, #89]	@ 0x59
 800139c:	e7ca      	b.n	8001334 <drill_smo_step+0x544>
 800139e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80013a2:	d51e      	bpl.n	80013e2 <drill_smo_step+0x5f2>
 80013a4:	eeb1 7a63 	vneg.f32	s14, s7
 80013a8:	edd4 7a0c 	vldr	s15, [r4, #48]	@ 0x30
 80013ac:	ee77 7aa7 	vadd.f32	s15, s15, s15
 80013b0:	eef4 7ac7 	vcmpe.f32	s15, s14
 80013b4:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80013b8:	d516      	bpl.n	80013e8 <drill_smo_step+0x5f8>
 80013ba:	f894 305a 	ldrb.w	r3, [r4, #90]	@ 0x5a
 80013be:	f894 2035 	ldrb.w	r2, [r4, #53]	@ 0x35
 80013c2:	4293      	cmp	r3, r2
 80013c4:	d205      	bcs.n	80013d2 <drill_smo_step+0x5e2>
 80013c6:	3301      	adds	r3, #1
 80013c8:	b2db      	uxtb	r3, r3
 80013ca:	429a      	cmp	r2, r3
 80013cc:	f884 305a 	strb.w	r3, [r4, #90]	@ 0x5a
 80013d0:	d8b0      	bhi.n	8001334 <drill_smo_step+0x544>
 80013d2:	2300      	movs	r3, #0
 80013d4:	f884 305d 	strb.w	r3, [r4, #93]	@ 0x5d
 80013d8:	f884 3059 	strb.w	r3, [r4, #89]	@ 0x59
 80013dc:	f884 305a 	strb.w	r3, [r4, #90]	@ 0x5a
 80013e0:	e7a8      	b.n	8001334 <drill_smo_step+0x544>
 80013e2:	eeb0 7a63 	vmov.f32	s14, s7
 80013e6:	e7df      	b.n	80013a8 <drill_smo_step+0x5b8>
 80013e8:	2300      	movs	r3, #0
 80013ea:	e7f7      	b.n	80013dc <drill_smo_step+0x5ec>
 80013ec:	3dd67750 	.word	0x3dd67750
 80013f0:	00000000 	.word	0x00000000
 80013f4:	40c90fdb 	.word	0x40c90fdb
 80013f8:	4118c9eb 	.word	0x4118c9eb

080013fc <finite_positive>:
 80013fc:	eeb4 0a40 	vcmp.f32	s0, s0
 8001400:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001404:	d001      	beq.n	800140a <finite_positive+0xe>
 8001406:	2000      	movs	r0, #0
 8001408:	4770      	bx	lr
 800140a:	eddf 7a0b 	vldr	s15, [pc, #44]	@ 8001438 <finite_positive+0x3c>
 800140e:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8001412:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001416:	d8f6      	bhi.n	8001406 <finite_positive+0xa>
 8001418:	eddf 7a08 	vldr	s15, [pc, #32]	@ 800143c <finite_positive+0x40>
 800141c:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8001420:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001424:	dbef      	blt.n	8001406 <finite_positive+0xa>
 8001426:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 800142a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800142e:	bfcc      	ite	gt
 8001430:	2001      	movgt	r0, #1
 8001432:	2000      	movle	r0, #0
 8001434:	4770      	bx	lr
 8001436:	bf00      	nop
 8001438:	7f7fffff 	.word	0x7f7fffff
 800143c:	ff7fffff 	.word	0xff7fffff

08001440 <finite_value>:
 8001440:	eeb4 0a40 	vcmp.f32	s0, s0
 8001444:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001448:	d001      	beq.n	800144e <finite_value+0xe>
 800144a:	2000      	movs	r0, #0
 800144c:	4770      	bx	lr
 800144e:	eddf 7a08 	vldr	s15, [pc, #32]	@ 8001470 <finite_value+0x30>
 8001452:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8001456:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800145a:	d8f6      	bhi.n	800144a <finite_value+0xa>
 800145c:	eddf 7a05 	vldr	s15, [pc, #20]	@ 8001474 <finite_value+0x34>
 8001460:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8001464:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001468:	bfac      	ite	ge
 800146a:	2001      	movge	r0, #1
 800146c:	2000      	movlt	r0, #0
 800146e:	4770      	bx	lr
 8001470:	7f7fffff 	.word	0x7f7fffff
 8001474:	ff7fffff 	.word	0xff7fffff

08001478 <duty_valid>:
 8001478:	b508      	push	{r3, lr}
 800147a:	f7ff ffe1 	bl	8001440 <finite_value>
 800147e:	b908      	cbnz	r0, 8001484 <duty_valid+0xc>
 8001480:	2000      	movs	r0, #0
 8001482:	bd08      	pop	{r3, pc}
 8001484:	eddf 7a08 	vldr	s15, [pc, #32]	@ 80014a8 <duty_valid+0x30>
 8001488:	eeb4 0ae7 	vcmpe.f32	s0, s15
 800148c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001490:	dbf6      	blt.n	8001480 <duty_valid+0x8>
 8001492:	eddf 7a06 	vldr	s15, [pc, #24]	@ 80014ac <duty_valid+0x34>
 8001496:	eeb4 0ae7 	vcmpe.f32	s0, s15
 800149a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800149e:	bf94      	ite	ls
 80014a0:	2001      	movls	r0, #1
 80014a2:	2000      	movhi	r0, #0
 80014a4:	e7ed      	b.n	8001482 <duty_valid+0xa>
 80014a6:	bf00      	nop
 80014a8:	b58637bd 	.word	0xb58637bd
 80014ac:	3f800008 	.word	0x3f800008

080014b0 <current_pi>:
 80014b0:	edd0 6a00 	vldr	s13, [r0]
 80014b4:	eddf 7a33 	vldr	s15, [pc, #204]	@ 8001584 <current_pi+0xd4>
 80014b8:	ee22 2a00 	vmul.f32	s4, s4, s0
 80014bc:	eeb0 7a66 	vmov.f32	s14, s13
 80014c0:	ee02 7a20 	vmla.f32	s14, s4, s1
 80014c4:	ee21 1a27 	vmul.f32	s2, s2, s15
 80014c8:	eeb4 1ac7 	vcmpe.f32	s2, s14
 80014cc:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80014d0:	d44a      	bmi.n	8001568 <current_pi+0xb8>
 80014d2:	eef1 7a41 	vneg.f32	s15, s2
 80014d6:	eef4 7ac7 	vcmpe.f32	s15, s14
 80014da:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80014de:	bfd8      	it	le
 80014e0:	eef0 7a47 	vmovle.f32	s15, s14
 80014e4:	ee60 1a21 	vmul.f32	s3, s0, s3
 80014e8:	ee31 7aa7 	vadd.f32	s14, s3, s15
 80014ec:	eeb4 1ac7 	vcmpe.f32	s2, s14
 80014f0:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80014f4:	d43b      	bmi.n	800156e <current_pi+0xbe>
 80014f6:	eeb1 6a41 	vneg.f32	s12, s2
 80014fa:	eeb4 6ac7 	vcmpe.f32	s12, s14
 80014fe:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001502:	bfcc      	ite	gt
 8001504:	2301      	movgt	r3, #1
 8001506:	2300      	movle	r3, #0
 8001508:	eeb1 6a41 	vneg.f32	s12, s2
 800150c:	eeb4 6ac7 	vcmpe.f32	s12, s14
 8001510:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001514:	dd15      	ble.n	8001542 <current_pi+0x92>
 8001516:	b1a3      	cbz	r3, 8001542 <current_pi+0x92>
 8001518:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 800151c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001520:	d50f      	bpl.n	8001542 <current_pi+0x92>
 8001522:	eef4 6ac1 	vcmpe.f32	s13, s2
 8001526:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800152a:	dc27      	bgt.n	800157c <current_pi+0xcc>
 800152c:	eef1 7a41 	vneg.f32	s15, s2
 8001530:	eef4 7ae6 	vcmpe.f32	s15, s13
 8001534:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001538:	bfd8      	it	le
 800153a:	eef0 7a66 	vmovle.f32	s15, s13
 800153e:	ee31 7aa7 	vadd.f32	s14, s3, s15
 8001542:	eeb4 7ac1 	vcmpe.f32	s14, s2
 8001546:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800154a:	edc0 7a00 	vstr	s15, [r0]
 800154e:	dc08      	bgt.n	8001562 <current_pi+0xb2>
 8001550:	eeb1 1a41 	vneg.f32	s2, s2
 8001554:	eeb4 1ac7 	vcmpe.f32	s2, s14
 8001558:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800155c:	bfd8      	it	le
 800155e:	eeb0 1a47 	vmovle.f32	s2, s14
 8001562:	eeb0 0a41 	vmov.f32	s0, s2
 8001566:	4770      	bx	lr
 8001568:	eef0 7a41 	vmov.f32	s15, s2
 800156c:	e7ba      	b.n	80014e4 <current_pi+0x34>
 800156e:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8001572:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001576:	dcd4      	bgt.n	8001522 <current_pi+0x72>
 8001578:	2301      	movs	r3, #1
 800157a:	e7c5      	b.n	8001508 <current_pi+0x58>
 800157c:	eef0 7a41 	vmov.f32	s15, s2
 8001580:	e7dd      	b.n	800153e <current_pi+0x8e>
 8001582:	bf00      	nop
 8001584:	3f3504f3 	.word	0x3f3504f3

08001588 <mfoc_init>:
 8001588:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 800158a:	4606      	mov	r6, r0
 800158c:	460d      	mov	r5, r1
 800158e:	b910      	cbnz	r0, 8001596 <mfoc_init+0xe>
 8001590:	2400      	movs	r4, #0
 8001592:	4620      	mov	r0, r4
 8001594:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8001596:	2220      	movs	r2, #32
 8001598:	2100      	movs	r1, #0
 800159a:	f7fe ff70 	bl	800047e <memset>
 800159e:	2300      	movs	r3, #0
 80015a0:	6233      	str	r3, [r6, #32]
 80015a2:	6273      	str	r3, [r6, #36]	@ 0x24
 80015a4:	2300      	movs	r3, #0
 80015a6:	f886 3028 	strb.w	r3, [r6, #40]	@ 0x28
 80015aa:	2d00      	cmp	r5, #0
 80015ac:	d0f0      	beq.n	8001590 <mfoc_init+0x8>
 80015ae:	ed95 7a00 	vldr	s14, [r5]
 80015b2:	eeb0 0a47 	vmov.f32	s0, s14
 80015b6:	f7ff ff21 	bl	80013fc <finite_positive>
 80015ba:	4604      	mov	r4, r0
 80015bc:	2800      	cmp	r0, #0
 80015be:	d0e8      	beq.n	8001592 <mfoc_init+0xa>
 80015c0:	ed95 0a01 	vldr	s0, [r5, #4]
 80015c4:	f7ff ff1a 	bl	80013fc <finite_positive>
 80015c8:	4604      	mov	r4, r0
 80015ca:	2800      	cmp	r0, #0
 80015cc:	d0e1      	beq.n	8001592 <mfoc_init+0xa>
 80015ce:	eeb4 7ac0 	vcmpe.f32	s14, s0
 80015d2:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80015d6:	dadb      	bge.n	8001590 <mfoc_init+0x8>
 80015d8:	ed95 7a02 	vldr	s14, [r5, #8]
 80015dc:	eeb0 0a47 	vmov.f32	s0, s14
 80015e0:	f7ff ff0c 	bl	80013fc <finite_positive>
 80015e4:	4604      	mov	r4, r0
 80015e6:	2800      	cmp	r0, #0
 80015e8:	d0d3      	beq.n	8001592 <mfoc_init+0xa>
 80015ea:	eef0 7a00 	vmov.f32	s15, #0	@ 0x40000000  2.0
 80015ee:	eeb4 7ae7 	vcmpe.f32	s14, s15
 80015f2:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80015f6:	dccb      	bgt.n	8001590 <mfoc_init+0x8>
 80015f8:	ed95 0a03 	vldr	s0, [r5, #12]
 80015fc:	f7ff fefe 	bl	80013fc <finite_positive>
 8001600:	4604      	mov	r4, r0
 8001602:	2800      	cmp	r0, #0
 8001604:	d0c5      	beq.n	8001592 <mfoc_init+0xa>
 8001606:	eeb4 7ac0 	vcmpe.f32	s14, s0
 800160a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800160e:	d4bf      	bmi.n	8001590 <mfoc_init+0x8>
 8001610:	ed95 0a04 	vldr	s0, [r5, #16]
 8001614:	f7ff fef2 	bl	80013fc <finite_positive>
 8001618:	4604      	mov	r4, r0
 800161a:	2800      	cmp	r0, #0
 800161c:	d0b9      	beq.n	8001592 <mfoc_init+0xa>
 800161e:	ed95 0a05 	vldr	s0, [r5, #20]
 8001622:	f7ff ff0d 	bl	8001440 <finite_value>
 8001626:	4604      	mov	r4, r0
 8001628:	2800      	cmp	r0, #0
 800162a:	d0b2      	beq.n	8001592 <mfoc_init+0xa>
 800162c:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8001630:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001634:	d4ac      	bmi.n	8001590 <mfoc_init+0x8>
 8001636:	ed95 0a06 	vldr	s0, [r5, #24]
 800163a:	f7ff fedf 	bl	80013fc <finite_positive>
 800163e:	4604      	mov	r4, r0
 8001640:	2800      	cmp	r0, #0
 8001642:	d0a6      	beq.n	8001592 <mfoc_init+0xa>
 8001644:	eddf 7a0f 	vldr	s15, [pc, #60]	@ 8001684 <mfoc_init+0xfc>
 8001648:	eeb4 0ae7 	vcmpe.f32	s0, s15
 800164c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001650:	dc9e      	bgt.n	8001590 <mfoc_init+0x8>
 8001652:	ed95 0a07 	vldr	s0, [r5, #28]
 8001656:	f7ff fed1 	bl	80013fc <finite_positive>
 800165a:	4604      	mov	r4, r0
 800165c:	2800      	cmp	r0, #0
 800165e:	d098      	beq.n	8001592 <mfoc_init+0xa>
 8001660:	eddf 7a09 	vldr	s15, [pc, #36]	@ 8001688 <mfoc_init+0x100>
 8001664:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8001668:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800166c:	dc90      	bgt.n	8001590 <mfoc_init+0x8>
 800166e:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8001670:	4637      	mov	r7, r6
 8001672:	c70f      	stmia	r7!, {r0, r1, r2, r3}
 8001674:	e895 000f 	ldmia.w	r5, {r0, r1, r2, r3}
 8001678:	e887 000f 	stmia.w	r7, {r0, r1, r2, r3}
 800167c:	2301      	movs	r3, #1
 800167e:	f886 3028 	strb.w	r3, [r6, #40]	@ 0x28
 8001682:	e786      	b.n	8001592 <mfoc_init+0xa>
 8001684:	3a83126f 	.word	0x3a83126f
 8001688:	3f733333 	.word	0x3f733333

0800168c <mfoc_reset>:
 800168c:	b110      	cbz	r0, 8001694 <mfoc_reset+0x8>
 800168e:	2300      	movs	r3, #0
 8001690:	6203      	str	r3, [r0, #32]
 8001692:	6243      	str	r3, [r0, #36]	@ 0x24
 8001694:	4770      	bx	lr
	...

08001698 <mfoc_step>:
 8001698:	b570      	push	{r4, r5, r6, lr}
 800169a:	b08a      	sub	sp, #40	@ 0x28
 800169c:	460d      	mov	r5, r1
 800169e:	4606      	mov	r6, r0
 80016a0:	4614      	mov	r4, r2
 80016a2:	2100      	movs	r1, #0
 80016a4:	2228      	movs	r2, #40	@ 0x28
 80016a6:	4668      	mov	r0, sp
 80016a8:	f7fe fee9 	bl	800047e <memset>
 80016ac:	2d00      	cmp	r5, #0
 80016ae:	f000 80f6 	beq.w	800189e <mfoc_step+0x206>
 80016b2:	f895 3028 	ldrb.w	r3, [r5, #40]	@ 0x28
 80016b6:	2b00      	cmp	r3, #0
 80016b8:	f000 80f1 	beq.w	800189e <mfoc_step+0x206>
 80016bc:	2c00      	cmp	r4, #0
 80016be:	f000 80ee 	beq.w	800189e <mfoc_step+0x206>
 80016c2:	ed94 5a00 	vldr	s10, [r4]
 80016c6:	eeb0 0a45 	vmov.f32	s0, s10
 80016ca:	f7ff feb9 	bl	8001440 <finite_value>
 80016ce:	2800      	cmp	r0, #0
 80016d0:	f000 80e5 	beq.w	800189e <mfoc_step+0x206>
 80016d4:	ed94 7a01 	vldr	s14, [r4, #4]
 80016d8:	eeb0 0a47 	vmov.f32	s0, s14
 80016dc:	f7ff feb0 	bl	8001440 <finite_value>
 80016e0:	2800      	cmp	r0, #0
 80016e2:	f000 80dc 	beq.w	800189e <mfoc_step+0x206>
 80016e6:	edd4 5a02 	vldr	s11, [r4, #8]
 80016ea:	eeb0 0a65 	vmov.f32	s0, s11
 80016ee:	f7ff fea7 	bl	8001440 <finite_value>
 80016f2:	2800      	cmp	r0, #0
 80016f4:	f000 80d3 	beq.w	800189e <mfoc_step+0x206>
 80016f8:	edd4 3a03 	vldr	s7, [r4, #12]
 80016fc:	eeb0 0a63 	vmov.f32	s0, s7
 8001700:	f7ff fe9e 	bl	8001440 <finite_value>
 8001704:	2800      	cmp	r0, #0
 8001706:	f000 80ca 	beq.w	800189e <mfoc_step+0x206>
 800170a:	ed94 3a04 	vldr	s6, [r4, #16]
 800170e:	eeb0 0a43 	vmov.f32	s0, s6
 8001712:	f7ff fe95 	bl	8001440 <finite_value>
 8001716:	2800      	cmp	r0, #0
 8001718:	f000 80c1 	beq.w	800189e <mfoc_step+0x206>
 800171c:	ed94 1a05 	vldr	s2, [r4, #20]
 8001720:	eeb0 0a41 	vmov.f32	s0, s2
 8001724:	f7ff fe8c 	bl	8001440 <finite_value>
 8001728:	2800      	cmp	r0, #0
 800172a:	f000 80b8 	beq.w	800189e <mfoc_step+0x206>
 800172e:	edd4 4a06 	vldr	s9, [r4, #24]
 8001732:	eeb0 0a64 	vmov.f32	s0, s9
 8001736:	f7ff fe83 	bl	8001440 <finite_value>
 800173a:	2800      	cmp	r0, #0
 800173c:	f000 80af 	beq.w	800189e <mfoc_step+0x206>
 8001740:	ed94 6a07 	vldr	s12, [r4, #28]
 8001744:	eeb0 0a46 	vmov.f32	s0, s12
 8001748:	f7ff fe7a 	bl	8001440 <finite_value>
 800174c:	2800      	cmp	r0, #0
 800174e:	f000 80a6 	beq.w	800189e <mfoc_step+0x206>
 8001752:	edd4 0a08 	vldr	s1, [r4, #32]
 8001756:	eeb0 0a60 	vmov.f32	s0, s1
 800175a:	f7ff fe71 	bl	8001440 <finite_value>
 800175e:	2800      	cmp	r0, #0
 8001760:	f000 809d 	beq.w	800189e <mfoc_step+0x206>
 8001764:	edd5 7a00 	vldr	s15, [r5]
 8001768:	eeb4 1ae7 	vcmpe.f32	s2, s15
 800176c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001770:	f100 8095 	bmi.w	800189e <mfoc_step+0x206>
 8001774:	edd5 7a01 	vldr	s15, [r5, #4]
 8001778:	eeb4 1ae7 	vcmpe.f32	s2, s15
 800177c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001780:	f300 808d 	bgt.w	800189e <mfoc_step+0x206>
 8001784:	eef5 0ac0 	vcmpe.f32	s1, #0.0
 8001788:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800178c:	f240 8087 	bls.w	800189e <mfoc_step+0x206>
 8001790:	edd5 7a06 	vldr	s15, [r5, #24]
 8001794:	eef4 0ae7 	vcmpe.f32	s1, s15
 8001798:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800179c:	dc7f      	bgt.n	800189e <mfoc_step+0x206>
 800179e:	eeb5 5ac0 	vcmpe.f32	s10, #0.0
 80017a2:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80017a6:	f140 8085 	bpl.w	80018b4 <mfoc_step+0x21c>
 80017aa:	eef1 6a45 	vneg.f32	s13, s10
 80017ae:	edd5 7a02 	vldr	s15, [r5, #8]
 80017b2:	eef4 7ae6 	vcmpe.f32	s15, s13
 80017b6:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80017ba:	d470      	bmi.n	800189e <mfoc_step+0x206>
 80017bc:	eeb5 7ac0 	vcmpe.f32	s14, #0.0
 80017c0:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80017c4:	d579      	bpl.n	80018ba <mfoc_step+0x222>
 80017c6:	eef1 6a47 	vneg.f32	s13, s14
 80017ca:	eef4 7ae6 	vcmpe.f32	s15, s13
 80017ce:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80017d2:	d464      	bmi.n	800189e <mfoc_step+0x206>
 80017d4:	eef5 5ac0 	vcmpe.f32	s11, #0.0
 80017d8:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80017dc:	d570      	bpl.n	80018c0 <mfoc_step+0x228>
 80017de:	eef1 6a65 	vneg.f32	s13, s11
 80017e2:	eef4 7ae6 	vcmpe.f32	s15, s13
 80017e6:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80017ea:	d458      	bmi.n	800189e <mfoc_step+0x206>
 80017ec:	eef5 4ac0 	vcmpe.f32	s9, #0.0
 80017f0:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80017f4:	d567      	bpl.n	80018c6 <mfoc_step+0x22e>
 80017f6:	eef1 6a64 	vneg.f32	s13, s9
 80017fa:	eef4 7ae6 	vcmpe.f32	s15, s13
 80017fe:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001802:	d44c      	bmi.n	800189e <mfoc_step+0x206>
 8001804:	eeb5 6ac0 	vcmpe.f32	s12, #0.0
 8001808:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800180c:	d55e      	bpl.n	80018cc <mfoc_step+0x234>
 800180e:	eef1 6a46 	vneg.f32	s13, s12
 8001812:	eef4 7ae6 	vcmpe.f32	s15, s13
 8001816:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800181a:	d440      	bmi.n	800189e <mfoc_step+0x206>
 800181c:	ee26 6a06 	vmul.f32	s12, s12, s12
 8001820:	ee04 6aa4 	vmla.f32	s12, s9, s9
 8001824:	ee67 6aa7 	vmul.f32	s13, s15, s15
 8001828:	eef4 6ac6 	vcmpe.f32	s13, s12
 800182c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001830:	d435      	bmi.n	800189e <mfoc_step+0x206>
 8001832:	ee75 7a07 	vadd.f32	s15, s10, s14
 8001836:	ee77 7aa5 	vadd.f32	s15, s15, s11
 800183a:	eef5 7ac0 	vcmpe.f32	s15, #0.0
 800183e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001842:	d501      	bpl.n	8001848 <mfoc_step+0x1b0>
 8001844:	eef1 7a67 	vneg.f32	s15, s15
 8001848:	ed95 6a03 	vldr	s12, [r5, #12]
 800184c:	eeb4 6ae7 	vcmpe.f32	s12, s15
 8001850:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001854:	d423      	bmi.n	800189e <mfoc_step+0x206>
 8001856:	ee23 0a03 	vmul.f32	s0, s6, s6
 800185a:	ee03 0aa3 	vmla.f32	s0, s7, s7
 800185e:	f7ff fdef 	bl	8001440 <finite_value>
 8001862:	b1e0      	cbz	r0, 800189e <mfoc_step+0x206>
 8001864:	eddf 7a90 	vldr	s15, [pc, #576]	@ 8001aa8 <mfoc_step+0x410>
 8001868:	eeb4 0ae7 	vcmpe.f32	s0, s15
 800186c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001870:	d415      	bmi.n	800189e <mfoc_step+0x206>
 8001872:	eddf 7a8e 	vldr	s15, [pc, #568]	@ 8001aac <mfoc_step+0x414>
 8001876:	eeb4 0ae7 	vcmpe.f32	s0, s15
 800187a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800187e:	dc0e      	bgt.n	800189e <mfoc_step+0x206>
 8001880:	ee37 7a65 	vsub.f32	s14, s14, s11
 8001884:	ed9f 6a8a 	vldr	s12, [pc, #552]	@ 8001ab0 <mfoc_step+0x418>
 8001888:	ee27 7a06 	vmul.f32	s14, s14, s12
 800188c:	ee67 7a07 	vmul.f32	s15, s14, s14
 8001890:	ee45 7a05 	vmla.f32	s15, s10, s10
 8001894:	eef4 7ae6 	vcmpe.f32	s15, s13
 8001898:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 800189c:	dd19      	ble.n	80018d2 <mfoc_step+0x23a>
 800189e:	4628      	mov	r0, r5
 80018a0:	f7ff fef4 	bl	800168c <mfoc_reset>
 80018a4:	2228      	movs	r2, #40	@ 0x28
 80018a6:	2100      	movs	r1, #0
 80018a8:	4630      	mov	r0, r6
 80018aa:	f7fe fde8 	bl	800047e <memset>
 80018ae:	4630      	mov	r0, r6
 80018b0:	b00a      	add	sp, #40	@ 0x28
 80018b2:	bd70      	pop	{r4, r5, r6, pc}
 80018b4:	eef0 6a45 	vmov.f32	s13, s10
 80018b8:	e779      	b.n	80017ae <mfoc_step+0x116>
 80018ba:	eef0 6a47 	vmov.f32	s13, s14
 80018be:	e784      	b.n	80017ca <mfoc_step+0x132>
 80018c0:	eef0 6a65 	vmov.f32	s13, s11
 80018c4:	e78d      	b.n	80017e2 <mfoc_step+0x14a>
 80018c6:	eef0 6a64 	vmov.f32	s13, s9
 80018ca:	e796      	b.n	80017fa <mfoc_step+0x162>
 80018cc:	eef0 6a46 	vmov.f32	s13, s12
 80018d0:	e79f      	b.n	8001812 <mfoc_step+0x17a>
 80018d2:	ee27 4a23 	vmul.f32	s8, s14, s7
 80018d6:	ee21 1a06 	vmul.f32	s2, s2, s12
 80018da:	edd5 7a07 	vldr	s15, [r5, #28]
 80018de:	edd5 2a05 	vldr	s5, [r5, #20]
 80018e2:	ee05 4a03 	vmla.f32	s8, s10, s6
 80018e6:	f105 0020 	add.w	r0, r5, #32
 80018ea:	ee67 5a03 	vmul.f32	s11, s14, s6
 80018ee:	ee45 5a63 	vmls.f32	s11, s10, s7
 80018f2:	ee21 5a27 	vmul.f32	s10, s2, s15
 80018f6:	edd5 3a04 	vldr	s7, [r5, #16]
 80018fa:	eeb0 2a62 	vmov.f32	s4, s5
 80018fe:	eef0 1a63 	vmov.f32	s3, s7
 8001902:	eeb0 1a45 	vmov.f32	s2, s10
 8001906:	ee34 0ac4 	vsub.f32	s0, s9, s8
 800190a:	f7ff fdd1 	bl	80014b0 <current_pi>
 800190e:	eeb0 3a40 	vmov.f32	s6, s0
 8001912:	ed94 0a07 	vldr	s0, [r4, #28]
 8001916:	edd4 0a08 	vldr	s1, [r4, #32]
 800191a:	eeb0 2a62 	vmov.f32	s4, s5
 800191e:	eef0 1a63 	vmov.f32	s3, s7
 8001922:	eeb0 1a45 	vmov.f32	s2, s10
 8001926:	ee30 0a65 	vsub.f32	s0, s0, s11
 800192a:	f105 0024 	add.w	r0, r5, #36	@ 0x24
 800192e:	f7ff fdbf 	bl	80014b0 <current_pi>
 8001932:	edd4 7a03 	vldr	s15, [r4, #12]
 8001936:	ed94 5a04 	vldr	s10, [r4, #16]
 800193a:	edd4 1a05 	vldr	s3, [r4, #20]
 800193e:	ee20 6a27 	vmul.f32	s12, s0, s15
 8001942:	ee13 6a05 	vnmls.f32	s12, s6, s10
 8001946:	ee20 5a05 	vmul.f32	s10, s0, s10
 800194a:	ee03 5a27 	vmla.f32	s10, s6, s15
 800194e:	eddf 7a59 	vldr	s15, [pc, #356]	@ 8001ab4 <mfoc_step+0x41c>
 8001952:	eefe 3a00 	vmov.f32	s7, #224	@ 0xbf000000 -0.5
 8001956:	ee26 7a23 	vmul.f32	s14, s12, s7
 800195a:	ee65 7a27 	vmul.f32	s15, s10, s15
 800195e:	eeb6 2a00 	vmov.f32	s4, #96	@ 0x3f000000  0.5
 8001962:	ee77 4a27 	vadd.f32	s9, s14, s15
 8001966:	ee37 7a67 	vsub.f32	s14, s14, s15
 800196a:	eef4 4ac6 	vcmpe.f32	s9, s12
 800196e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001972:	eeb4 6ae4 	vcmpe.f32	s12, s9
 8001976:	bfd4      	ite	le
 8001978:	eef0 6a46 	vmovle.f32	s13, s12
 800197c:	eef0 6a64 	vmovgt.f32	s13, s9
 8001980:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001984:	bfd4      	ite	le
 8001986:	eef0 7a46 	vmovle.f32	s15, s12
 800198a:	eef0 7a64 	vmovgt.f32	s15, s9
 800198e:	eeb4 7ae6 	vcmpe.f32	s14, s13
 8001992:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001996:	eef4 7ac7 	vcmpe.f32	s15, s14
 800199a:	bfc8      	it	gt
 800199c:	eef0 6a47 	vmovgt.f32	s13, s14
 80019a0:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 80019a4:	bfc8      	it	gt
 80019a6:	eef0 7a47 	vmovgt.f32	s15, s14
 80019aa:	ee76 6aa7 	vadd.f32	s13, s13, s15
 80019ae:	eef0 2a40 	vmov.f32	s5, s0
 80019b2:	ee66 6aa3 	vmul.f32	s13, s13, s7
 80019b6:	ee76 7a26 	vadd.f32	s15, s12, s13
 80019ba:	eec7 3aa1 	vdiv.f32	s7, s15, s3
 80019be:	ee73 3a82 	vadd.f32	s7, s7, s4
 80019c2:	eeb0 0a63 	vmov.f32	s0, s7
 80019c6:	f7ff fd57 	bl	8001478 <duty_valid>
 80019ca:	2800      	cmp	r0, #0
 80019cc:	f43f af67 	beq.w	800189e <mfoc_step+0x206>
 80019d0:	ee74 4aa6 	vadd.f32	s9, s9, s13
 80019d4:	eec4 7aa1 	vdiv.f32	s15, s9, s3
 80019d8:	ee77 4a82 	vadd.f32	s9, s15, s4
 80019dc:	eeb0 0a64 	vmov.f32	s0, s9
 80019e0:	f7ff fd4a 	bl	8001478 <duty_valid>
 80019e4:	2800      	cmp	r0, #0
 80019e6:	f43f af5a 	beq.w	800189e <mfoc_step+0x206>
 80019ea:	ee37 7a26 	vadd.f32	s14, s14, s13
 80019ee:	ee87 0a21 	vdiv.f32	s0, s14, s3
 80019f2:	ee30 0a02 	vadd.f32	s0, s0, s4
 80019f6:	f7ff fd3f 	bl	8001478 <duty_valid>
 80019fa:	2800      	cmp	r0, #0
 80019fc:	f43f af4f 	beq.w	800189e <mfoc_step+0x206>
 8001a00:	eef5 3ac0 	vcmpe.f32	s7, #0.0
 8001a04:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001a08:	d444      	bmi.n	8001a94 <mfoc_step+0x3fc>
 8001a0a:	eef7 6a00 	vmov.f32	s13, #112	@ 0x3f800000  1.0
 8001a0e:	eef4 3ae6 	vcmpe.f32	s7, s13
 8001a12:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001a16:	bfd8      	it	le
 8001a18:	eef0 6a63 	vmovle.f32	s13, s7
 8001a1c:	eef5 4ac0 	vcmpe.f32	s9, #0.0
 8001a20:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001a24:	d439      	bmi.n	8001a9a <mfoc_step+0x402>
 8001a26:	eeb7 7a00 	vmov.f32	s14, #112	@ 0x3f800000  1.0
 8001a2a:	eef4 4ac7 	vcmpe.f32	s9, s14
 8001a2e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001a32:	bfd8      	it	le
 8001a34:	eeb0 7a64 	vmovle.f32	s14, s9
 8001a38:	eeb5 0ac0 	vcmpe.f32	s0, #0.0
 8001a3c:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001a40:	d42e      	bmi.n	8001aa0 <mfoc_step+0x408>
 8001a42:	eef7 7a00 	vmov.f32	s15, #112	@ 0x3f800000  1.0
 8001a46:	eeb4 0ae7 	vcmpe.f32	s0, s15
 8001a4a:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001a4e:	bfd8      	it	le
 8001a50:	eef0 7a40 	vmovle.f32	s15, s0
 8001a54:	2301      	movs	r3, #1
 8001a56:	f88d 3000 	strb.w	r3, [sp]
 8001a5a:	ed8d 4a01 	vstr	s8, [sp, #4]
 8001a5e:	edcd 5a02 	vstr	s11, [sp, #8]
 8001a62:	ed8d 3a03 	vstr	s6, [sp, #12]
 8001a66:	466d      	mov	r5, sp
 8001a68:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8001a6a:	edcd 2a04 	vstr	s5, [sp, #16]
 8001a6e:	ed8d 6a05 	vstr	s12, [sp, #20]
 8001a72:	ed8d 5a06 	vstr	s10, [sp, #24]
 8001a76:	edcd 6a07 	vstr	s13, [sp, #28]
 8001a7a:	4634      	mov	r4, r6
 8001a7c:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 8001a7e:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
 8001a80:	c40f      	stmia	r4!, {r0, r1, r2, r3}
 8001a82:	ed8d 7a08 	vstr	s14, [sp, #32]
 8001a86:	edcd 7a09 	vstr	s15, [sp, #36]	@ 0x24
 8001a8a:	e895 0003 	ldmia.w	r5, {r0, r1}
 8001a8e:	e884 0003 	stmia.w	r4, {r0, r1}
 8001a92:	e70c      	b.n	80018ae <mfoc_step+0x216>
 8001a94:	eddf 6a08 	vldr	s13, [pc, #32]	@ 8001ab8 <mfoc_step+0x420>
 8001a98:	e7c0      	b.n	8001a1c <mfoc_step+0x384>
 8001a9a:	ed9f 7a07 	vldr	s14, [pc, #28]	@ 8001ab8 <mfoc_step+0x420>
 8001a9e:	e7cb      	b.n	8001a38 <mfoc_step+0x3a0>
 8001aa0:	eddf 7a05 	vldr	s15, [pc, #20]	@ 8001ab8 <mfoc_step+0x420>
 8001aa4:	e7d6      	b.n	8001a54 <mfoc_step+0x3bc>
 8001aa6:	bf00      	nop
 8001aa8:	3f670a3d 	.word	0x3f670a3d
 8001aac:	3f8d1eb8 	.word	0x3f8d1eb8
 8001ab0:	3f13cd3a 	.word	0x3f13cd3a
 8001ab4:	3f5db3d7 	.word	0x3f5db3d7
 8001ab8:	00000000 	.word	0x00000000

08001abc <run_synthetic>:
 8001abc:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 8001ac0:	4c89      	ldr	r4, [pc, #548]	@ (8001ce8 <run_synthetic+0x22c>)
 8001ac2:	ed2d 8b06 	vpush	{d8-d10}
 8001ac6:	4606      	mov	r6, r0
 8001ac8:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 8001aca:	b0de      	sub	sp, #376	@ 0x178
 8001acc:	ad38      	add	r5, sp, #224	@ 0xe0
 8001ace:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 8001ad0:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 8001ad2:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 8001ad4:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 8001ad6:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 8001ad8:	e894 0003 	ldmia.w	r4, {r0, r1}
 8001adc:	3408      	adds	r4, #8
 8001ade:	e885 0003 	stmia.w	r5, {r0, r1}
 8001ae2:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
 8001ae4:	ad09      	add	r5, sp, #36	@ 0x24
 8001ae6:	c50f      	stmia	r5!, {r0, r1, r2, r3}
 8001ae8:	e894 000f 	ldmia.w	r4, {r0, r1, r2, r3}
 8001aec:	e885 000f 	stmia.w	r5, {r0, r1, r2, r3}
 8001af0:	a938      	add	r1, sp, #224	@ 0xe0
 8001af2:	a846      	add	r0, sp, #280	@ 0x118
 8001af4:	eef0 9a40 	vmov.f32	s19, s0
 8001af8:	f7ff f826 	bl	8000b48 <drill_smo_init>
 8001afc:	2800      	cmp	r0, #0
 8001afe:	d057      	beq.n	8001bb0 <run_synthetic+0xf4>
 8001b00:	a909      	add	r1, sp, #36	@ 0x24
 8001b02:	a82d      	add	r0, sp, #180	@ 0xb4
 8001b04:	f7ff fd40 	bl	8001588 <mfoc_init>
 8001b08:	2800      	cmp	r0, #0
 8001b0a:	d051      	beq.n	8001bb0 <run_synthetic+0xf4>
 8001b0c:	ad11      	add	r5, sp, #68	@ 0x44
 8001b0e:	2224      	movs	r2, #36	@ 0x24
 8001b10:	2100      	movs	r1, #0
 8001b12:	4628      	mov	r0, r5
 8001b14:	f7fe fcb3 	bl	800047e <memset>
 8001b18:	ed9f 8a74 	vldr	s16, [pc, #464]	@ 8001cec <run_synthetic+0x230>
 8001b1c:	ed9f aa74 	vldr	s20, [pc, #464]	@ 8001cf0 <run_synthetic+0x234>
 8001b20:	eddf 8a74 	vldr	s17, [pc, #464]	@ 8001cf4 <run_synthetic+0x238>
 8001b24:	f649 4740 	movw	r7, #40000	@ 0x9c40
 8001b28:	a902      	add	r1, sp, #8
 8001b2a:	a801      	add	r0, sp, #4
 8001b2c:	eeb0 0a48 	vmov.f32	s0, s16
 8001b30:	f7fe ff44 	bl	80009bc <drill_smo_sincos>
 8001b34:	ee69 7a8a 	vmul.f32	s15, s19, s20
 8001b38:	eddd 6a01 	vldr	s13, [sp, #4]
 8001b3c:	ed9f 7a6e 	vldr	s14, [pc, #440]	@ 8001cf8 <run_synthetic+0x23c>
 8001b40:	4c6e      	ldr	r4, [pc, #440]	@ (8001cfc <run_synthetic+0x240>)
 8001b42:	4b6f      	ldr	r3, [pc, #444]	@ (8001d00 <run_synthetic+0x244>)
 8001b44:	9306      	str	r3, [sp, #24]
 8001b46:	ee07 7ae6 	vmls.f32	s14, s15, s13
 8001b4a:	68a3      	ldr	r3, [r4, #8]
 8001b4c:	f88d 6020 	strb.w	r6, [sp, #32]
 8001b50:	eddd 6a02 	vldr	s13, [sp, #8]
 8001b54:	ed8d 7a03 	vstr	s14, [sp, #12]
 8001b58:	ed9f 7a6a 	vldr	s14, [pc, #424]	@ 8001d04 <run_synthetic+0x248>
 8001b5c:	ed9f 9a6a 	vldr	s18, [pc, #424]	@ 8001d08 <run_synthetic+0x24c>
 8001b60:	edcd 8a05 	vstr	s17, [sp, #20]
 8001b64:	ee17 7aa6 	vnmls.f32	s14, s15, s13
 8001b68:	3301      	adds	r3, #1
 8001b6a:	a903      	add	r1, sp, #12
 8001b6c:	60a3      	str	r3, [r4, #8]
 8001b6e:	ed81 7a01 	vstr	s14, [r1, #4]
 8001b72:	ed81 9a04 	vstr	s18, [r1, #16]
 8001b76:	f3bf 8f5f 	dmb	sy
 8001b7a:	f3bf 8f4f 	dsb	sy
 8001b7e:	f8df 91a4 	ldr.w	r9, [pc, #420]	@ 8001d24 <run_synthetic+0x268>
 8001b82:	462a      	mov	r2, r5
 8001b84:	a846      	add	r0, sp, #280	@ 0x118
 8001b86:	f8d9 8004 	ldr.w	r8, [r9, #4]
 8001b8a:	f7ff f931 	bl	8000df0 <drill_smo_step>
 8001b8e:	f3bf 8f4f 	dsb	sy
 8001b92:	f8d9 3004 	ldr.w	r3, [r9, #4]
 8001b96:	6a61      	ldr	r1, [r4, #36]	@ 0x24
 8001b98:	eba3 0208 	sub.w	r2, r3, r8
 8001b9c:	428a      	cmp	r2, r1
 8001b9e:	bf88      	it	hi
 8001ba0:	6262      	strhi	r2, [r4, #36]	@ 0x24
 8001ba2:	b950      	cbnz	r0, 8001bba <run_synthetic+0xfe>
 8001ba4:	f3bf 8f5f 	dmb	sy
 8001ba8:	68a3      	ldr	r3, [r4, #8]
 8001baa:	3301      	adds	r3, #1
 8001bac:	60a3      	str	r3, [r4, #8]
 8001bae:	2000      	movs	r0, #0
 8001bb0:	b05e      	add	sp, #376	@ 0x178
 8001bb2:	ecbd 8b06 	vpop	{d8-d10}
 8001bb6:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 8001bba:	f895 2020 	ldrb.w	r2, [r5, #32]
 8001bbe:	2a00      	cmp	r2, #0
 8001bc0:	d03d      	beq.n	8001c3e <run_synthetic+0x182>
 8001bc2:	f895 2021 	ldrb.w	r2, [r5, #33]	@ 0x21
 8001bc6:	2a00      	cmp	r2, #0
 8001bc8:	d039      	beq.n	8001c3e <run_synthetic+0x182>
 8001bca:	4b50      	ldr	r3, [pc, #320]	@ (8001d0c <run_synthetic+0x250>)
 8001bcc:	931b      	str	r3, [sp, #108]	@ 0x6c
 8001bce:	ee07 6a90 	vmov	s15, r6
 8001bd2:	4b4f      	ldr	r3, [pc, #316]	@ (8001d10 <run_synthetic+0x254>)
 8001bd4:	931c      	str	r3, [sp, #112]	@ 0x70
 8001bd6:	eef8 7ae7 	vcvt.f32.s32	s15, s15
 8001bda:	69ab      	ldr	r3, [r5, #24]
 8001bdc:	931d      	str	r3, [sp, #116]	@ 0x74
 8001bde:	69eb      	ldr	r3, [r5, #28]
 8001be0:	931e      	str	r3, [sp, #120]	@ 0x78
 8001be2:	ee67 7aa8 	vmul.f32	s15, s15, s17
 8001be6:	4b4b      	ldr	r3, [pc, #300]	@ (8001d14 <run_synthetic+0x258>)
 8001be8:	931f      	str	r3, [sp, #124]	@ 0x7c
 8001bea:	2300      	movs	r3, #0
 8001bec:	edcd 8a1a 	vstr	s17, [sp, #104]	@ 0x68
 8001bf0:	9320      	str	r3, [sp, #128]	@ 0x80
 8001bf2:	edcd 7a21 	vstr	s15, [sp, #132]	@ 0x84
 8001bf6:	ed8d 9a22 	vstr	s18, [sp, #136]	@ 0x88
 8001bfa:	f3bf 8f4f 	dsb	sy
 8001bfe:	f8df a124 	ldr.w	sl, [pc, #292]	@ 8001d24 <run_synthetic+0x268>
 8001c02:	aa1a      	add	r2, sp, #104	@ 0x68
 8001c04:	a92d      	add	r1, sp, #180	@ 0xb4
 8001c06:	a823      	add	r0, sp, #140	@ 0x8c
 8001c08:	f8da 9004 	ldr.w	r9, [sl, #4]
 8001c0c:	f7ff fd44 	bl	8001698 <mfoc_step>
 8001c10:	f3bf 8f4f 	dsb	sy
 8001c14:	f8da 3004 	ldr.w	r3, [sl, #4]
 8001c18:	6aa1      	ldr	r1, [r4, #40]	@ 0x28
 8001c1a:	eba3 0209 	sub.w	r2, r3, r9
 8001c1e:	428a      	cmp	r2, r1
 8001c20:	bf88      	it	hi
 8001c22:	62a2      	strhi	r2, [r4, #40]	@ 0x28
 8001c24:	f89d 208c 	ldrb.w	r2, [sp, #140]	@ 0x8c
 8001c28:	2a00      	cmp	r2, #0
 8001c2a:	d0bb      	beq.n	8001ba4 <run_synthetic+0xe8>
 8001c2c:	6a22      	ldr	r2, [r4, #32]
 8001c2e:	3201      	adds	r2, #1
 8001c30:	6222      	str	r2, [r4, #32]
 8001c32:	9a2a      	ldr	r2, [sp, #168]	@ 0xa8
 8001c34:	6462      	str	r2, [r4, #68]	@ 0x44
 8001c36:	9a2b      	ldr	r2, [sp, #172]	@ 0xac
 8001c38:	64a2      	str	r2, [r4, #72]	@ 0x48
 8001c3a:	9a2c      	ldr	r2, [sp, #176]	@ 0xb0
 8001c3c:	64e2      	str	r2, [r4, #76]	@ 0x4c
 8001c3e:	6ae2      	ldr	r2, [r4, #44]	@ 0x2c
 8001c40:	eddf 6a35 	vldr	s13, [pc, #212]	@ 8001d18 <run_synthetic+0x25c>
 8001c44:	eddf 7a35 	vldr	s15, [pc, #212]	@ 8001d1c <run_synthetic+0x260>
 8001c48:	eba3 0308 	sub.w	r3, r3, r8
 8001c4c:	4293      	cmp	r3, r2
 8001c4e:	bf88      	it	hi
 8001c50:	62e3      	strhi	r3, [r4, #44]	@ 0x2c
 8001c52:	f5b3 5fc8 	cmp.w	r3, #6400	@ 0x1900
 8001c56:	bf84      	itt	hi
 8001c58:	2301      	movhi	r3, #1
 8001c5a:	6323      	strhi	r3, [r4, #48]	@ 0x30
 8001c5c:	69e3      	ldr	r3, [r4, #28]
 8001c5e:	ee09 8a89 	vmla.f32	s16, s19, s18
 8001c62:	3301      	adds	r3, #1
 8001c64:	61e3      	str	r3, [r4, #28]
 8001c66:	68ab      	ldr	r3, [r5, #8]
 8001c68:	63e3      	str	r3, [r4, #60]	@ 0x3c
 8001c6a:	eeb4 8ae6 	vcmpe.f32	s16, s13
 8001c6e:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001c72:	dc2d      	bgt.n	8001cd0 <run_synthetic+0x214>
 8001c74:	ed9f 7a2a 	vldr	s14, [pc, #168]	@ 8001d20 <run_synthetic+0x264>
 8001c78:	eddf 7a28 	vldr	s15, [pc, #160]	@ 8001d1c <run_synthetic+0x260>
 8001c7c:	eeb4 8ac7 	vcmpe.f32	s16, s14
 8001c80:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001c84:	d427      	bmi.n	8001cd6 <run_synthetic+0x21a>
 8001c86:	edd5 7a00 	vldr	s15, [r5]
 8001c8a:	ed9f 6a24 	vldr	s12, [pc, #144]	@ 8001d1c <run_synthetic+0x260>
 8001c8e:	ee77 7ac8 	vsub.f32	s15, s15, s16
 8001c92:	eef4 7ae6 	vcmpe.f32	s15, s13
 8001c96:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001c9a:	dc1f      	bgt.n	8001cdc <run_synthetic+0x220>
 8001c9c:	eddf 6a1f 	vldr	s13, [pc, #124]	@ 8001d1c <run_synthetic+0x260>
 8001ca0:	eef4 7ac7 	vcmpe.f32	s15, s14
 8001ca4:	eef1 fa10 	vmrs	APSR_nzcv, fpscr
 8001ca8:	d41b      	bmi.n	8001ce2 <run_synthetic+0x226>
 8001caa:	edc4 7a10 	vstr	s15, [r4, #64]	@ 0x40
 8001cae:	f3bf 8f5f 	dmb	sy
 8001cb2:	68a3      	ldr	r3, [r4, #8]
 8001cb4:	3f01      	subs	r7, #1
 8001cb6:	f103 0301 	add.w	r3, r3, #1
 8001cba:	60a3      	str	r3, [r4, #8]
 8001cbc:	f47f af34 	bne.w	8001b28 <run_synthetic+0x6c>
 8001cc0:	f895 0021 	ldrb.w	r0, [r5, #33]	@ 0x21
 8001cc4:	2800      	cmp	r0, #0
 8001cc6:	f43f af73 	beq.w	8001bb0 <run_synthetic+0xf4>
 8001cca:	f895 0020 	ldrb.w	r0, [r5, #32]
 8001cce:	e76f      	b.n	8001bb0 <run_synthetic+0xf4>
 8001cd0:	ee38 8a67 	vsub.f32	s16, s16, s15
 8001cd4:	e7c9      	b.n	8001c6a <run_synthetic+0x1ae>
 8001cd6:	ee38 8a27 	vadd.f32	s16, s16, s15
 8001cda:	e7cf      	b.n	8001c7c <run_synthetic+0x1c0>
 8001cdc:	ee77 7ac6 	vsub.f32	s15, s15, s12
 8001ce0:	e7d7      	b.n	8001c92 <run_synthetic+0x1d6>
 8001ce2:	ee77 7aa6 	vadd.f32	s15, s15, s13
 8001ce6:	e7db      	b.n	8001ca0 <run_synthetic+0x1e4>
 8001ce8:	08001ef0 	.word	0x08001ef0
 8001cec:	3f333333 	.word	0x3f333333
 8001cf0:	399d4952 	.word	0x399d4952
 8001cf4:	3e4ccccd 	.word	0x3e4ccccd
 8001cf8:	3dcccccd 	.word	0x3dcccccd
 8001cfc:	20000008 	.word	0x20000008
 8001d00:	bdcccccd 	.word	0xbdcccccd
 8001d04:	3d4ccccd 	.word	0x3d4ccccd
 8001d08:	3851b717 	.word	0x3851b717
 8001d0c:	be3f14bc 	.word	0xbe3f14bc
 8001d10:	bc5b8105 	.word	0xbc5b8105
 8001d14:	4131999a 	.word	0x4131999a
 8001d18:	40490fdb 	.word	0x40490fdb
 8001d1c:	40c90fdb 	.word	0x40c90fdb
 8001d20:	c0490fdb 	.word	0xc0490fdb
 8001d24:	e0001000 	.word	0xe0001000

08001d28 <drill_safe_boot>:
 8001d28:	b510      	push	{r4, lr}
 8001d2a:	4c15      	ldr	r4, [pc, #84]	@ (8001d80 <drill_safe_boot+0x58>)
 8001d2c:	6823      	ldr	r3, [r4, #0]
 8001d2e:	f413 2fa0 	tst.w	r3, #327680	@ 0x50000
 8001d32:	b092      	sub	sp, #72	@ 0x48
 8001d34:	d001      	beq.n	8001d3a <drill_safe_boot+0x12>
 8001d36:	bf30      	wfi
 8001d38:	e7fd      	b.n	8001d36 <drill_safe_boot+0xe>
 8001d3a:	4912      	ldr	r1, [pc, #72]	@ (8001d84 <drill_safe_boot+0x5c>)
 8001d3c:	2248      	movs	r2, #72	@ 0x48
 8001d3e:	4668      	mov	r0, sp
 8001d40:	f7fe fb94 	bl	800046c <memcpy>
 8001d44:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 8001d46:	f043 0323 	orr.w	r3, r3, #35	@ 0x23
 8001d4a:	64e3      	str	r3, [r4, #76]	@ 0x4c
 8001d4c:	4668      	mov	r0, sp
 8001d4e:	6ce3      	ldr	r3, [r4, #76]	@ 0x4c
 8001d50:	f7fe fb9d 	bl	800048e <drill_safe_gpio_validate>
 8001d54:	b908      	cbnz	r0, 8001d5a <drill_safe_boot+0x32>
 8001d56:	bf30      	wfi
 8001d58:	e7fd      	b.n	8001d56 <drill_safe_boot+0x2e>
 8001d5a:	4668      	mov	r0, sp
 8001d5c:	f7fe fbb4 	bl	80004c8 <drill_safe_gpio_preload>
 8001d60:	b908      	cbnz	r0, 8001d66 <drill_safe_boot+0x3e>
 8001d62:	bf30      	wfi
 8001d64:	e7fd      	b.n	8001d62 <drill_safe_boot+0x3a>
 8001d66:	f3bf 8f4f 	dsb	sy
 8001d6a:	4668      	mov	r0, sp
 8001d6c:	f7fe fbbf 	bl	80004ee <drill_safe_gpio_configure_outputs>
 8001d70:	b908      	cbnz	r0, 8001d76 <drill_safe_boot+0x4e>
 8001d72:	bf30      	wfi
 8001d74:	e7fd      	b.n	8001d72 <drill_safe_boot+0x4a>
 8001d76:	f3bf 8f4f 	dsb	sy
 8001d7a:	b012      	add	sp, #72	@ 0x48
 8001d7c:	bd10      	pop	{r4, pc}
 8001d7e:	bf00      	nop
 8001d80:	40021000 	.word	0x40021000
 8001d84:	08001f48 	.word	0x08001f48

08001d88 <SysTick_Handler>:
 8001d88:	bf30      	wfi
 8001d8a:	e7fd      	b.n	8001d88 <SysTick_Handler>

08001d8c <main>:
 8001d8c:	4c3a      	ldr	r4, [pc, #232]	@ (8001e78 <main+0xec>)
 8001d8e:	b507      	push	{r0, r1, r2, lr}
 8001d90:	f7ff ffca 	bl	8001d28 <drill_safe_boot>
 8001d94:	4b39      	ldr	r3, [pc, #228]	@ (8001e7c <main+0xf0>)
 8001d96:	6023      	str	r3, [r4, #0]
 8001d98:	2301      	movs	r3, #1
 8001d9a:	6063      	str	r3, [r4, #4]
 8001d9c:	6363      	str	r3, [r4, #52]	@ 0x34
 8001d9e:	2300      	movs	r3, #0
 8001da0:	63a3      	str	r3, [r4, #56]	@ 0x38
 8001da2:	f7fe fcab 	bl	80006fc <drill_clock_init>
 8001da6:	b918      	cbnz	r0, 8001db0 <main+0x24>
 8001da8:	4b35      	ldr	r3, [pc, #212]	@ (8001e80 <main+0xf4>)
 8001daa:	60e3      	str	r3, [r4, #12]
 8001dac:	bf30      	wfi
 8001dae:	e7fd      	b.n	8001dac <main+0x20>
 8001db0:	4b34      	ldr	r3, [pc, #208]	@ (8001e84 <main+0xf8>)
 8001db2:	6819      	ldr	r1, [r3, #0]
 8001db4:	4b34      	ldr	r3, [pc, #208]	@ (8001e88 <main+0xfc>)
 8001db6:	6121      	str	r1, [r4, #16]
 8001db8:	f8d3 2088 	ldr.w	r2, [r3, #136]	@ 0x88
 8001dbc:	6162      	str	r2, [r4, #20]
 8001dbe:	f8d3 2088 	ldr.w	r2, [r3, #136]	@ 0x88
 8001dc2:	f402 0270 	and.w	r2, r2, #15728640	@ 0xf00000
 8001dc6:	f5b2 0f70 	cmp.w	r2, #15728640	@ 0xf00000
 8001dca:	d102      	bne.n	8001dd2 <main+0x46>
 8001dcc:	4a2f      	ldr	r2, [pc, #188]	@ (8001e8c <main+0x100>)
 8001dce:	4291      	cmp	r1, r2
 8001dd0:	d003      	beq.n	8001dda <main+0x4e>
 8001dd2:	4b2f      	ldr	r3, [pc, #188]	@ (8001e90 <main+0x104>)
 8001dd4:	60e3      	str	r3, [r4, #12]
 8001dd6:	bf30      	wfi
 8001dd8:	e7fd      	b.n	8001dd6 <main+0x4a>
 8001dda:	f3bf 8f4f 	dsb	sy
 8001dde:	f3bf 8f6f 	isb	sy
 8001de2:	f8d3 20fc 	ldr.w	r2, [r3, #252]	@ 0xfc
 8001de6:	f042 7280 	orr.w	r2, r2, #16777216	@ 0x1000000
 8001dea:	f8c3 20fc 	str.w	r2, [r3, #252]	@ 0xfc
 8001dee:	4a29      	ldr	r2, [pc, #164]	@ (8001e94 <main+0x108>)
 8001df0:	6813      	ldr	r3, [r2, #0]
 8001df2:	f013 7300 	ands.w	r3, r3, #33554432	@ 0x2000000
 8001df6:	d125      	bne.n	8001e44 <main+0xb8>
 8001df8:	6053      	str	r3, [r2, #4]
 8001dfa:	6811      	ldr	r1, [r2, #0]
 8001dfc:	f041 0101 	orr.w	r1, r1, #1
 8001e00:	6011      	str	r1, [r2, #0]
 8001e02:	f3bf 8f4f 	dsb	sy
 8001e06:	f3bf 8f6f 	isb	sy
 8001e0a:	6851      	ldr	r1, [r2, #4]
 8001e0c:	9301      	str	r3, [sp, #4]
 8001e0e:	9b01      	ldr	r3, [sp, #4]
 8001e10:	2b0f      	cmp	r3, #15
 8001e12:	d913      	bls.n	8001e3c <main+0xb0>
 8001e14:	4b1f      	ldr	r3, [pc, #124]	@ (8001e94 <main+0x108>)
 8001e16:	685a      	ldr	r2, [r3, #4]
 8001e18:	4291      	cmp	r1, r2
 8001e1a:	d013      	beq.n	8001e44 <main+0xb8>
 8001e1c:	681a      	ldr	r2, [r3, #0]
 8001e1e:	07d2      	lsls	r2, r2, #31
 8001e20:	d510      	bpl.n	8001e44 <main+0xb8>
 8001e22:	681b      	ldr	r3, [r3, #0]
 8001e24:	ed9f 0a1c 	vldr	s0, [pc, #112]	@ 8001e98 <main+0x10c>
 8001e28:	61a3      	str	r3, [r4, #24]
 8001e2a:	2001      	movs	r0, #1
 8001e2c:	60e0      	str	r0, [r4, #12]
 8001e2e:	f7ff fe45 	bl	8001abc <run_synthetic>
 8001e32:	b958      	cbnz	r0, 8001e4c <main+0xc0>
 8001e34:	4b19      	ldr	r3, [pc, #100]	@ (8001e9c <main+0x110>)
 8001e36:	60e3      	str	r3, [r4, #12]
 8001e38:	bf30      	wfi
 8001e3a:	e7fd      	b.n	8001e38 <main+0xac>
 8001e3c:	bf00      	nop
 8001e3e:	9b01      	ldr	r3, [sp, #4]
 8001e40:	3301      	adds	r3, #1
 8001e42:	e7e3      	b.n	8001e0c <main+0x80>
 8001e44:	4b16      	ldr	r3, [pc, #88]	@ (8001ea0 <main+0x114>)
 8001e46:	60e3      	str	r3, [r4, #12]
 8001e48:	bf30      	wfi
 8001e4a:	e7fd      	b.n	8001e48 <main+0xbc>
 8001e4c:	ed9f 0a15 	vldr	s0, [pc, #84]	@ 8001ea4 <main+0x118>
 8001e50:	f04f 30ff 	mov.w	r0, #4294967295	@ 0xffffffff
 8001e54:	f7ff fe32 	bl	8001abc <run_synthetic>
 8001e58:	2800      	cmp	r0, #0
 8001e5a:	d0eb      	beq.n	8001e34 <main+0xa8>
 8001e5c:	68a3      	ldr	r3, [r4, #8]
 8001e5e:	3301      	adds	r3, #1
 8001e60:	60a3      	str	r3, [r4, #8]
 8001e62:	f3bf 8f5f 	dmb	sy
 8001e66:	2302      	movs	r3, #2
 8001e68:	60e3      	str	r3, [r4, #12]
 8001e6a:	f3bf 8f5f 	dmb	sy
 8001e6e:	68a3      	ldr	r3, [r4, #8]
 8001e70:	3301      	adds	r3, #1
 8001e72:	60a3      	str	r3, [r4, #8]
 8001e74:	bf30      	wfi
 8001e76:	e7fd      	b.n	8001e74 <main+0xe8>
 8001e78:	20000008 	.word	0x20000008
 8001e7c:	41313030 	.word	0x41313030
 8001e80:	80000001 	.word	0x80000001
 8001e84:	20000000 	.word	0x20000000
 8001e88:	e000ed00 	.word	0xe000ed00
 8001e8c:	07a12000 	.word	0x07a12000
 8001e90:	80000002 	.word	0x80000002
 8001e94:	e0001000 	.word	0xe0001000
 8001e98:	46a39e00 	.word	0x46a39e00
 8001e9c:	80000004 	.word	0x80000004
 8001ea0:	80000003 	.word	0x80000003
 8001ea4:	c6a39e00 	.word	0xc6a39e00

08001ea8 <cordic_angles>:
 8001ea8:	3f490fdb 3eed6338 3e7adbb0 3dfeadd5     ..I?8c.>..z>...=
 8001eb8:	3d7faade 3cffeaae 3c7ffaab 3bfffeab     ...=...<...<...;
 8001ec8:	3b7fffab 3affffeb 3a7ffffb 39ffffff     ...;...:...:...9
 8001ed8:	39800000 39000000 38800000 38000000     ...9...9...8...8
 8001ee8:	37800000 37000000 3f000000 3a03126f     ...7...7...?o..:
 8001ef8:	41200000 3e800000 3749539c 44e10000     .. A...>.SI7...D
 8001f08:	48c35000 3e800000 40e9999a 40000000     .P.H...>...@...@
 8001f18:	47435000 3851b717 3f19999a 00001004     .PCG..Q8...?....
 8001f28:	41100000 4149999a 40000000 3e4ccccd     ...A..IA...@..L>
 8001f38:	3e800000 00000000 3851b717 3f666666     ...>......Q8fff?
 8001f48:	48000000 48000004 48000008 4800000c     ...H...H...H...H
 8001f58:	48000018 100017a0 48000400 48000404     ...H.......H...H
 8001f68:	48000408 4800040c 48000418 00000003     ...H...H...H....
 8001f78:	48001400 48001404 48001408 4800140c     ...H...H...H...H
 8001f88:	48001418 00000002                       ...H....
