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


Disassembly of section .text:

080000b8 <Reset_Handler-0x14>:
 80000b8:	08005e3c 	.word	0x08005e3c
 80000bc:	20000000 	.word	0x20000000
 80000c0:	20000004 	.word	0x20000004
 80000c4:	20000008 	.word	0x20000008
 80000c8:	2000098c 	.word	0x2000098c

080000cc <Reset_Handler>:
 80000cc:	480d      	ldr	r0, [pc, #52]	@ (8000104 <LoopForever+0x2>)
 80000ce:	4685      	mov	sp, r0
 80000d0:	f000 f826 	bl	8000120 <SystemInit>
 80000d4:	480c      	ldr	r0, [pc, #48]	@ (8000108 <LoopForever+0x6>)
 80000d6:	490d      	ldr	r1, [pc, #52]	@ (800010c <LoopForever+0xa>)
 80000d8:	4a0d      	ldr	r2, [pc, #52]	@ (8000110 <LoopForever+0xe>)
 80000da:	2300      	movs	r3, #0
 80000dc:	e002      	b.n	80000e4 <LoopCopyDataInit>

080000de <CopyDataInit>:
 80000de:	58d4      	ldr	r4, [r2, r3]
 80000e0:	50c4      	str	r4, [r0, r3]
 80000e2:	3304      	adds	r3, #4

080000e4 <LoopCopyDataInit>:
 80000e4:	18c4      	adds	r4, r0, r3
 80000e6:	428c      	cmp	r4, r1
 80000e8:	d3f9      	bcc.n	80000de <CopyDataInit>
 80000ea:	4a0a      	ldr	r2, [pc, #40]	@ (8000114 <LoopForever+0x12>)
 80000ec:	4c0a      	ldr	r4, [pc, #40]	@ (8000118 <LoopForever+0x16>)
 80000ee:	2300      	movs	r3, #0
 80000f0:	e001      	b.n	80000f6 <LoopFillZerobss>

080000f2 <FillZerobss>:
 80000f2:	6013      	str	r3, [r2, #0]
 80000f4:	3204      	adds	r2, #4

080000f6 <LoopFillZerobss>:
 80000f6:	42a2      	cmp	r2, r4
 80000f8:	d3fb      	bcc.n	80000f2 <FillZerobss>
 80000fa:	f000 f87b 	bl	80001f4 <__libc_init_array>
 80000fe:	f000 f96b 	bl	80003d8 <main>

08000102 <LoopForever>:
 8000102:	e7fe      	b.n	8000102 <LoopForever>
 8000104:	20002000 	.word	0x20002000
 8000108:	20000000 	.word	0x20000000
 800010c:	20000004 	.word	0x20000004
 8000110:	08005e3c 	.word	0x08005e3c
 8000114:	20000008 	.word	0x20000008
 8000118:	2000098c 	.word	0x2000098c

0800011c <ADC1_IRQHandler>:
 800011c:	e7fe      	b.n	800011c <ADC1_IRQHandler>
	...

08000120 <SystemInit>:
 8000120:	4770      	bx	lr

08000122 <SystemCoreClockUpdate>:
 8000122:	2238      	movs	r2, #56	@ 0x38
 8000124:	b510      	push	{r4, lr}
 8000126:	4c1d      	ldr	r4, [pc, #116]	@ (800019c <SystemCoreClockUpdate+0x7a>)
 8000128:	68a3      	ldr	r3, [r4, #8]
 800012a:	4013      	ands	r3, r2
 800012c:	2b18      	cmp	r3, #24
 800012e:	d02f      	beq.n	8000190 <SystemCoreClockUpdate+0x6e>
 8000130:	d809      	bhi.n	8000146 <SystemCoreClockUpdate+0x24>
 8000132:	2b08      	cmp	r3, #8
 8000134:	d02f      	beq.n	8000196 <SystemCoreClockUpdate+0x74>
 8000136:	2b10      	cmp	r3, #16
 8000138:	d00a      	beq.n	8000150 <SystemCoreClockUpdate+0x2e>
 800013a:	6823      	ldr	r3, [r4, #0]
 800013c:	4818      	ldr	r0, [pc, #96]	@ (80001a0 <SystemCoreClockUpdate+0x7e>)
 800013e:	049b      	lsls	r3, r3, #18
 8000140:	0f5b      	lsrs	r3, r3, #29
 8000142:	40d8      	lsrs	r0, r3
 8000144:	e018      	b.n	8000178 <SystemCoreClockUpdate+0x56>
 8000146:	2b20      	cmp	r3, #32
 8000148:	d1f7      	bne.n	800013a <SystemCoreClockUpdate+0x18>
 800014a:	2080      	movs	r0, #128	@ 0x80
 800014c:	0200      	lsls	r0, r0, #8
 800014e:	e013      	b.n	8000178 <SystemCoreClockUpdate+0x56>
 8000150:	68e3      	ldr	r3, [r4, #12]
 8000152:	68e1      	ldr	r1, [r4, #12]
 8000154:	43db      	mvns	r3, r3
 8000156:	0649      	lsls	r1, r1, #25
 8000158:	0f49      	lsrs	r1, r1, #29
 800015a:	3101      	adds	r1, #1
 800015c:	079b      	lsls	r3, r3, #30
 800015e:	d115      	bne.n	800018c <SystemCoreClockUpdate+0x6a>
 8000160:	4810      	ldr	r0, [pc, #64]	@ (80001a4 <SystemCoreClockUpdate+0x82>)
 8000162:	f005 fac5 	bl	80056f0 <__udivsi3>
 8000166:	68e3      	ldr	r3, [r4, #12]
 8000168:	68e1      	ldr	r1, [r4, #12]
 800016a:	045b      	lsls	r3, r3, #17
 800016c:	0e5b      	lsrs	r3, r3, #25
 800016e:	0f49      	lsrs	r1, r1, #29
 8000170:	4358      	muls	r0, r3
 8000172:	3101      	adds	r1, #1
 8000174:	f005 fabc 	bl	80056f0 <__udivsi3>
 8000178:	68a3      	ldr	r3, [r4, #8]
 800017a:	4a0b      	ldr	r2, [pc, #44]	@ (80001a8 <SystemCoreClockUpdate+0x86>)
 800017c:	051b      	lsls	r3, r3, #20
 800017e:	0f1b      	lsrs	r3, r3, #28
 8000180:	009b      	lsls	r3, r3, #2
 8000182:	589b      	ldr	r3, [r3, r2]
 8000184:	4909      	ldr	r1, [pc, #36]	@ (80001ac <SystemCoreClockUpdate+0x8a>)
 8000186:	40d8      	lsrs	r0, r3
 8000188:	6008      	str	r0, [r1, #0]
 800018a:	bd10      	pop	{r4, pc}
 800018c:	4804      	ldr	r0, [pc, #16]	@ (80001a0 <SystemCoreClockUpdate+0x7e>)
 800018e:	e7e8      	b.n	8000162 <SystemCoreClockUpdate+0x40>
 8000190:	20fa      	movs	r0, #250	@ 0xfa
 8000192:	01c0      	lsls	r0, r0, #7
 8000194:	e7f0      	b.n	8000178 <SystemCoreClockUpdate+0x56>
 8000196:	4803      	ldr	r0, [pc, #12]	@ (80001a4 <SystemCoreClockUpdate+0x82>)
 8000198:	e7ee      	b.n	8000178 <SystemCoreClockUpdate+0x56>
 800019a:	46c0      	nop			@ (mov r8, r8)
 800019c:	40021000 	.word	0x40021000
 80001a0:	00f42400 	.word	0x00f42400
 80001a4:	007a1200 	.word	0x007a1200
 80001a8:	08005aac 	.word	0x08005aac
 80001ac:	20000000 	.word	0x20000000

080001b0 <memcpy>:
 80001b0:	2300      	movs	r3, #0
 80001b2:	b510      	push	{r4, lr}
 80001b4:	4293      	cmp	r3, r2
 80001b6:	d100      	bne.n	80001ba <memcpy+0xa>
 80001b8:	bd10      	pop	{r4, pc}
 80001ba:	5ccc      	ldrb	r4, [r1, r3]
 80001bc:	54c4      	strb	r4, [r0, r3]
 80001be:	3301      	adds	r3, #1
 80001c0:	e7f8      	b.n	80001b4 <memcpy+0x4>

080001c2 <memset>:
 80001c2:	0003      	movs	r3, r0
 80001c4:	1882      	adds	r2, r0, r2
 80001c6:	4293      	cmp	r3, r2
 80001c8:	d100      	bne.n	80001cc <memset+0xa>
 80001ca:	4770      	bx	lr
 80001cc:	7019      	strb	r1, [r3, #0]
 80001ce:	3301      	adds	r3, #1
 80001d0:	e7f9      	b.n	80001c6 <memset+0x4>

080001d2 <memcmp>:
 80001d2:	2300      	movs	r3, #0
 80001d4:	b530      	push	{r4, r5, lr}
 80001d6:	4293      	cmp	r3, r2
 80001d8:	d101      	bne.n	80001de <memcmp+0xc>
 80001da:	2000      	movs	r0, #0
 80001dc:	e007      	b.n	80001ee <memcmp+0x1c>
 80001de:	5cc5      	ldrb	r5, [r0, r3]
 80001e0:	5ccc      	ldrb	r4, [r1, r3]
 80001e2:	42a5      	cmp	r5, r4
 80001e4:	d004      	beq.n	80001f0 <memcmp+0x1e>
 80001e6:	2001      	movs	r0, #1
 80001e8:	42a5      	cmp	r5, r4
 80001ea:	d200      	bcs.n	80001ee <memcmp+0x1c>
 80001ec:	3802      	subs	r0, #2
 80001ee:	bd30      	pop	{r4, r5, pc}
 80001f0:	3301      	adds	r3, #1
 80001f2:	e7f0      	b.n	80001d6 <memcmp+0x4>

080001f4 <__libc_init_array>:
 80001f4:	4770      	bx	lr
	...

080001f8 <gpio_drive>:
 80001f8:	b570      	push	{r4, r5, r6, lr}
 80001fa:	2501      	movs	r5, #1
 80001fc:	408d      	lsls	r5, r1
 80001fe:	004c      	lsls	r4, r1, #1
 8000200:	002b      	movs	r3, r5
 8000202:	2a00      	cmp	r2, #0
 8000204:	d102      	bne.n	800020c <gpio_drive+0x14>
 8000206:	2301      	movs	r3, #1
 8000208:	3110      	adds	r1, #16
 800020a:	408b      	lsls	r3, r1
 800020c:	2203      	movs	r2, #3
 800020e:	40a2      	lsls	r2, r4
 8000210:	6183      	str	r3, [r0, #24]
 8000212:	6843      	ldr	r3, [r0, #4]
 8000214:	43ab      	bics	r3, r5
 8000216:	6043      	str	r3, [r0, #4]
 8000218:	6883      	ldr	r3, [r0, #8]
 800021a:	4393      	bics	r3, r2
 800021c:	6083      	str	r3, [r0, #8]
 800021e:	68c3      	ldr	r3, [r0, #12]
 8000220:	4393      	bics	r3, r2
 8000222:	60c3      	str	r3, [r0, #12]
 8000224:	6803      	ldr	r3, [r0, #0]
 8000226:	4393      	bics	r3, r2
 8000228:	2201      	movs	r2, #1
 800022a:	40a2      	lsls	r2, r4
 800022c:	4313      	orrs	r3, r2
 800022e:	6003      	str	r3, [r0, #0]
 8000230:	bd70      	pop	{r4, r5, r6, pc}

08000232 <lamp_send_ticket>:
 8000232:	b510      	push	{r4, lr}
 8000234:	f002 fa8c 	bl	8002750 <lamp_uart_tx_enqueue>
 8000238:	bd10      	pop	{r4, pc}

0800023a <sample_and_poll_inputs>:
 800023a:	b5f0      	push	{r4, r5, r6, r7, lr}
 800023c:	b0a3      	sub	sp, #140	@ 0x8c
 800023e:	f000 fdb5 	bl	8000dac <lamp_i2c_pins_available>
 8000242:	4c41      	ldr	r4, [pc, #260]	@ (8000348 <sample_and_poll_inputs+0x10e>)
 8000244:	ae09      	add	r6, sp, #36	@ 0x24
 8000246:	6020      	str	r0, [r4, #0]
 8000248:	f000 fe3e 	bl	8000ec8 <lamp_i2c_clock_available>
 800024c:	6060      	str	r0, [r4, #4]
 800024e:	68a3      	ldr	r3, [r4, #8]
 8000250:	ad0e      	add	r5, sp, #56	@ 0x38
 8000252:	0018      	movs	r0, r3
 8000254:	9302      	str	r3, [sp, #8]
 8000256:	f001 ff7b 	bl	8002150 <lamp_adc_poll>
 800025a:	0031      	movs	r1, r6
 800025c:	9802      	ldr	r0, [sp, #8]
 800025e:	f002 f83b 	bl	80022d8 <lamp_adc_get_frame>
 8000262:	9003      	str	r0, [sp, #12]
 8000264:	60e0      	str	r0, [r4, #12]
 8000266:	f002 f863 	bl	8002330 <lamp_adc_failed>
 800026a:	2300      	movs	r3, #0
 800026c:	6120      	str	r0, [r4, #16]
 800026e:	6163      	str	r3, [r4, #20]
 8000270:	61a3      	str	r3, [r4, #24]
 8000272:	9b03      	ldr	r3, [sp, #12]
 8000274:	2b00      	cmp	r3, #0
 8000276:	d063      	beq.n	8000340 <sample_and_poll_inputs+0x106>
 8000278:	0023      	movs	r3, r4
 800027a:	0032      	movs	r2, r6
 800027c:	331c      	adds	r3, #28
 800027e:	ca83      	ldmia	r2!, {r0, r1, r7}
 8000280:	c383      	stmia	r3!, {r0, r1, r7}
 8000282:	ca03      	ldmia	r2!, {r0, r1}
 8000284:	c303      	stmia	r3!, {r0, r1}
 8000286:	002b      	movs	r3, r5
 8000288:	0030      	movs	r0, r6
 800028a:	8e21      	ldrh	r1, [r4, #48]	@ 0x30
 800028c:	9a02      	ldr	r2, [sp, #8]
 800028e:	f002 f859 	bl	8002344 <lamp_measurement_from_frame>
 8000292:	6360      	str	r0, [r4, #52]	@ 0x34
 8000294:	2800      	cmp	r0, #0
 8000296:	d113      	bne.n	80002c0 <sample_and_poll_inputs+0x86>
 8000298:	0023      	movs	r3, r4
 800029a:	002a      	movs	r2, r5
 800029c:	3338      	adds	r3, #56	@ 0x38
 800029e:	ca83      	ldmia	r2!, {r0, r1, r7}
 80002a0:	c383      	stmia	r3!, {r0, r1, r7}
 80002a2:	ca83      	ldmia	r2!, {r0, r1, r7}
 80002a4:	c383      	stmia	r3!, {r0, r1, r7}
 80002a6:	2701      	movs	r7, #1
 80002a8:	ca03      	ldmia	r2!, {r0, r1}
 80002aa:	c303      	stmia	r3!, {r0, r1}
 80002ac:	a905      	add	r1, sp, #20
 80002ae:	8830      	ldrh	r0, [r6, #0]
 80002b0:	6167      	str	r7, [r4, #20]
 80002b2:	f002 f9a9 	bl	8002608 <lamp_ntc_candidate_temperature>
 80002b6:	2800      	cmp	r0, #0
 80002b8:	d002      	beq.n	80002c0 <sample_and_poll_inputs+0x86>
 80002ba:	9b05      	ldr	r3, [sp, #20]
 80002bc:	65a3      	str	r3, [r4, #88]	@ 0x58
 80002be:	61a7      	str	r7, [r4, #24]
 80002c0:	af05      	add	r7, sp, #20
 80002c2:	0038      	movs	r0, r7
 80002c4:	68a1      	ldr	r1, [r4, #8]
 80002c6:	f001 fd93 	bl	8001df0 <lamp_board_inputs_read>
 80002ca:	2000      	movs	r0, #0
 80002cc:	78bb      	ldrb	r3, [r7, #2]
 80002ce:	7879      	ldrb	r1, [r7, #1]
 80002d0:	009b      	lsls	r3, r3, #2
 80002d2:	0049      	lsls	r1, r1, #1
 80002d4:	430b      	orrs	r3, r1
 80002d6:	79ba      	ldrb	r2, [r7, #6]
 80002d8:	7839      	ldrb	r1, [r7, #0]
 80002da:	00d2      	lsls	r2, r2, #3
 80002dc:	430b      	orrs	r3, r1
 80002de:	4313      	orrs	r3, r2
 80002e0:	65e3      	str	r3, [r4, #92]	@ 0x5c
 80002e2:	797b      	ldrb	r3, [r7, #5]
 80002e4:	7939      	ldrb	r1, [r7, #4]
 80002e6:	009b      	lsls	r3, r3, #2
 80002e8:	0049      	lsls	r1, r1, #1
 80002ea:	430b      	orrs	r3, r1
 80002ec:	78f9      	ldrb	r1, [r7, #3]
 80002ee:	430b      	orrs	r3, r1
 80002f0:	79f9      	ldrb	r1, [r7, #7]
 80002f2:	0109      	lsls	r1, r1, #4
 80002f4:	430b      	orrs	r3, r1
 80002f6:	7b39      	ldrb	r1, [r7, #12]
 80002f8:	0149      	lsls	r1, r1, #5
 80002fa:	430b      	orrs	r3, r1
 80002fc:	4313      	orrs	r3, r2
 80002fe:	6623      	str	r3, [r4, #96]	@ 0x60
 8000300:	9b03      	ldr	r3, [sp, #12]
 8000302:	4283      	cmp	r3, r0
 8000304:	d000      	beq.n	8000308 <sample_and_poll_inputs+0xce>
 8000306:	a809      	add	r0, sp, #36	@ 0x24
 8000308:	6de3      	ldr	r3, [r4, #92]	@ 0x5c
 800030a:	6e22      	ldr	r2, [r4, #96]	@ 0x60
 800030c:	8e21      	ldrh	r1, [r4, #48]	@ 0x30
 800030e:	9200      	str	r2, [sp, #0]
 8000310:	9501      	str	r5, [sp, #4]
 8000312:	9a02      	ldr	r2, [sp, #8]
 8000314:	f002 f90c 	bl	8002530 <lamp_bench_capture_make>
 8000318:	0020      	movs	r0, r4
 800031a:	6e63      	ldr	r3, [r4, #100]	@ 0x64
 800031c:	0029      	movs	r1, r5
 800031e:	3301      	adds	r3, #1
 8000320:	2250      	movs	r2, #80	@ 0x50
 8000322:	3068      	adds	r0, #104	@ 0x68
 8000324:	6663      	str	r3, [r4, #100]	@ 0x64
 8000326:	f7ff ff43 	bl	80001b0 <memcpy>
 800032a:	6e63      	ldr	r3, [r4, #100]	@ 0x64
 800032c:	4807      	ldr	r0, [pc, #28]	@ (800034c <sample_and_poll_inputs+0x112>)
 800032e:	3301      	adds	r3, #1
 8000330:	6663      	str	r3, [r4, #100]	@ 0x64
 8000332:	68a1      	ldr	r1, [r4, #8]
 8000334:	9a07      	ldr	r2, [sp, #28]
 8000336:	9b08      	ldr	r3, [sp, #32]
 8000338:	f003 f91c 	bl	8003574 <lg_poll>
 800033c:	b023      	add	sp, #140	@ 0x8c
 800033e:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8000340:	2304      	movs	r3, #4
 8000342:	6363      	str	r3, [r4, #52]	@ 0x34
 8000344:	e7bc      	b.n	80002c0 <sample_and_poll_inputs+0x86>
 8000346:	46c0      	nop			@ (mov r8, r8)
 8000348:	20000008 	.word	0x20000008
 800034c:	200001e0 	.word	0x200001e0

08000350 <poll_diagnostics>:
 8000350:	b530      	push	{r4, r5, lr}
 8000352:	4b17      	ldr	r3, [pc, #92]	@ (80003b0 <poll_diagnostics+0x60>)
 8000354:	b0a3      	sub	sp, #140	@ 0x8c
 8000356:	689d      	ldr	r5, [r3, #8]
 8000358:	0028      	movs	r0, r5
 800035a:	f001 f84b 	bl	80013f4 <lamp_diagnostic_runtime_poll>
 800035e:	4815      	ldr	r0, [pc, #84]	@ (80003b4 <poll_diagnostics+0x64>)
 8000360:	4b15      	ldr	r3, [pc, #84]	@ (80003b8 <poll_diagnostics+0x68>)
 8000362:	4c16      	ldr	r4, [pc, #88]	@ (80003bc <poll_diagnostics+0x6c>)
 8000364:	5cc3      	ldrb	r3, [r0, r3]
 8000366:	2b00      	cmp	r3, #0
 8000368:	d008      	beq.n	800037c <poll_diagnostics+0x2c>
 800036a:	002a      	movs	r2, r5
 800036c:	4914      	ldr	r1, [pc, #80]	@ (80003c0 <poll_diagnostics+0x70>)
 800036e:	f001 f905 	bl	800157c <lamp_diagnostic_runtime_prepare_frame>
 8000372:	2800      	cmp	r0, #0
 8000374:	d002      	beq.n	800037c <poll_diagnostics+0x2c>
 8000376:	6ba3      	ldr	r3, [r4, #56]	@ 0x38
 8000378:	3301      	adds	r3, #1
 800037a:	63a3      	str	r3, [r4, #56]	@ 0x38
 800037c:	0028      	movs	r0, r5
 800037e:	f001 f93f 	bl	8001600 <lamp_diagnostic_runtime_frame_ready>
 8000382:	63e0      	str	r0, [r4, #60]	@ 0x3c
 8000384:	f001 fc7e 	bl	8001c84 <lamp_output_pins_read_off>
 8000388:	6420      	str	r0, [r4, #64]	@ 0x40
 800038a:	f001 f8bf 	bl	800150c <lamp_diagnostic_runtime_state>
 800038e:	a901      	add	r1, sp, #4
 8000390:	6460      	str	r0, [r4, #68]	@ 0x44
 8000392:	0028      	movs	r0, r5
 8000394:	f001 f8ce 	bl	8001534 <lamp_diagnostic_runtime_get>
 8000398:	64a0      	str	r0, [r4, #72]	@ 0x48
 800039a:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 800039c:	2b00      	cmp	r3, #0
 800039e:	d004      	beq.n	80003aa <poll_diagnostics+0x5a>
 80003a0:	2284      	movs	r2, #132	@ 0x84
 80003a2:	4808      	ldr	r0, [pc, #32]	@ (80003c4 <poll_diagnostics+0x74>)
 80003a4:	a901      	add	r1, sp, #4
 80003a6:	f7ff ff03 	bl	80001b0 <memcpy>
 80003aa:	b023      	add	sp, #140	@ 0x8c
 80003ac:	bd30      	pop	{r4, r5, pc}
 80003ae:	46c0      	nop			@ (mov r8, r8)
 80003b0:	20000008 	.word	0x20000008
 80003b4:	200001e0 	.word	0x200001e0
 80003b8:	00000212 	.word	0x00000212
 80003bc:	20000088 	.word	0x20000088
 80003c0:	08005b0c 	.word	0x08005b0c
 80003c4:	20000158 	.word	0x20000158

080003c8 <SysTick_Handler>:
 80003c8:	4a02      	ldr	r2, [pc, #8]	@ (80003d4 <SysTick_Handler+0xc>)
 80003ca:	6893      	ldr	r3, [r2, #8]
 80003cc:	3301      	adds	r3, #1
 80003ce:	6093      	str	r3, [r2, #8]
 80003d0:	4770      	bx	lr
 80003d2:	46c0      	nop			@ (mov r8, r8)
 80003d4:	20000008 	.word	0x20000008

080003d8 <main>:
 80003d8:	b5f0      	push	{r4, r5, r6, r7, lr}
 80003da:	2707      	movs	r7, #7
 80003dc:	2601      	movs	r6, #1
 80003de:	24a0      	movs	r4, #160	@ 0xa0
 80003e0:	4bb5      	ldr	r3, [pc, #724]	@ (80006b8 <main+0x2e0>)
 80003e2:	b0e7      	sub	sp, #412	@ 0x19c
 80003e4:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 80003e6:	05e4      	lsls	r4, r4, #23
 80003e8:	433a      	orrs	r2, r7
 80003ea:	635a      	str	r2, [r3, #52]	@ 0x34
 80003ec:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 80003ee:	6c1a      	ldr	r2, [r3, #64]	@ 0x40
 80003f0:	4db2      	ldr	r5, [pc, #712]	@ (80006bc <main+0x2e4>)
 80003f2:	4332      	orrs	r2, r6
 80003f4:	641a      	str	r2, [r3, #64]	@ 0x40
 80003f6:	6c1b      	ldr	r3, [r3, #64]	@ 0x40
 80003f8:	4bb1      	ldr	r3, [pc, #708]	@ (80006c0 <main+0x2e8>)
 80003fa:	61a3      	str	r3, [r4, #24]
 80003fc:	2380      	movs	r3, #128	@ 0x80
 80003fe:	049b      	lsls	r3, r3, #18
 8000400:	61ab      	str	r3, [r5, #24]
 8000402:	f3bf 8f4f 	dsb	sy
 8000406:	2200      	movs	r2, #0
 8000408:	0020      	movs	r0, r4
 800040a:	2104      	movs	r1, #4
 800040c:	f7ff fef4 	bl	80001f8 <gpio_drive>
 8000410:	0032      	movs	r2, r6
 8000412:	0039      	movs	r1, r7
 8000414:	0020      	movs	r0, r4
 8000416:	f7ff feef 	bl	80001f8 <gpio_drive>
 800041a:	0020      	movs	r0, r4
 800041c:	2200      	movs	r2, #0
 800041e:	2109      	movs	r1, #9
 8000420:	f7ff feea 	bl	80001f8 <gpio_drive>
 8000424:	2200      	movs	r2, #0
 8000426:	210b      	movs	r1, #11
 8000428:	0020      	movs	r0, r4
 800042a:	f7ff fee5 	bl	80001f8 <gpio_drive>
 800042e:	6823      	ldr	r3, [r4, #0]
 8000430:	49a4      	ldr	r1, [pc, #656]	@ (80006c4 <main+0x2ec>)
 8000432:	400b      	ands	r3, r1
 8000434:	6023      	str	r3, [r4, #0]
 8000436:	2380      	movs	r3, #128	@ 0x80
 8000438:	68e2      	ldr	r2, [r4, #12]
 800043a:	039b      	lsls	r3, r3, #14
 800043c:	400a      	ands	r2, r1
 800043e:	4313      	orrs	r3, r2
 8000440:	60e3      	str	r3, [r4, #12]
 8000442:	6823      	ldr	r3, [r4, #0]
 8000444:	4aa0      	ldr	r2, [pc, #640]	@ (80006c8 <main+0x2f0>)
 8000446:	2118      	movs	r1, #24
 8000448:	4013      	ands	r3, r2
 800044a:	6023      	str	r3, [r4, #0]
 800044c:	68e3      	ldr	r3, [r4, #12]
 800044e:	4013      	ands	r3, r2
 8000450:	2280      	movs	r2, #128	@ 0x80
 8000452:	0492      	lsls	r2, r2, #18
 8000454:	4313      	orrs	r3, r2
 8000456:	4a9d      	ldr	r2, [pc, #628]	@ (80006cc <main+0x2f4>)
 8000458:	60e3      	str	r3, [r4, #12]
 800045a:	6813      	ldr	r3, [r2, #0]
 800045c:	438b      	bics	r3, r1
 800045e:	6013      	str	r3, [r2, #0]
 8000460:	f3bf 8f4f 	dsb	sy
 8000464:	22c0      	movs	r2, #192	@ 0xc0
 8000466:	4b9a      	ldr	r3, [pc, #616]	@ (80006d0 <main+0x2f8>)
 8000468:	0592      	lsls	r2, r2, #22
 800046a:	6819      	ldr	r1, [r3, #0]
 800046c:	0028      	movs	r0, r5
 800046e:	430a      	orrs	r2, r1
 8000470:	601a      	str	r2, [r3, #0]
 8000472:	68da      	ldr	r2, [r3, #12]
 8000474:	4997      	ldr	r1, [pc, #604]	@ (80006d4 <main+0x2fc>)
 8000476:	400a      	ands	r2, r1
 8000478:	60da      	str	r2, [r3, #12]
 800047a:	2109      	movs	r1, #9
 800047c:	2200      	movs	r2, #0
 800047e:	f7ff febb 	bl	80001f8 <gpio_drive>
 8000482:	2303      	movs	r3, #3
 8000484:	6822      	ldr	r2, [r4, #0]
 8000486:	439a      	bics	r2, r3
 8000488:	6022      	str	r2, [r4, #0]
 800048a:	2202      	movs	r2, #2
 800048c:	68e1      	ldr	r1, [r4, #12]
 800048e:	4399      	bics	r1, r3
 8000490:	430a      	orrs	r2, r1
 8000492:	213c      	movs	r1, #60	@ 0x3c
 8000494:	60e2      	str	r2, [r4, #12]
 8000496:	682a      	ldr	r2, [r5, #0]
 8000498:	430a      	orrs	r2, r1
 800049a:	602a      	str	r2, [r5, #0]
 800049c:	68ea      	ldr	r2, [r5, #12]
 800049e:	438a      	bics	r2, r1
 80004a0:	60ea      	str	r2, [r5, #12]
 80004a2:	22c0      	movs	r2, #192	@ 0xc0
 80004a4:	6821      	ldr	r1, [r4, #0]
 80004a6:	0292      	lsls	r2, r2, #10
 80004a8:	430a      	orrs	r2, r1
 80004aa:	6022      	str	r2, [r4, #0]
 80004ac:	68e2      	ldr	r2, [r4, #12]
 80004ae:	498a      	ldr	r1, [pc, #552]	@ (80006d8 <main+0x300>)
 80004b0:	400a      	ands	r2, r1
 80004b2:	60e2      	str	r2, [r4, #12]
 80004b4:	682a      	ldr	r2, [r5, #0]
 80004b6:	439a      	bics	r2, r3
 80004b8:	602a      	str	r2, [r5, #0]
 80004ba:	68ea      	ldr	r2, [r5, #12]
 80004bc:	439a      	bics	r2, r3
 80004be:	4316      	orrs	r6, r2
 80004c0:	60ee      	str	r6, [r5, #12]
 80004c2:	f000 fcab 	bl	8000e1c <lamp_i2c_pins_init>
 80004c6:	4c85      	ldr	r4, [pc, #532]	@ (80006dc <main+0x304>)
 80004c8:	64e0      	str	r0, [r4, #76]	@ 0x4c
 80004ca:	f000 fd35 	bl	8000f38 <lamp_i2c_clock_init>
 80004ce:	6520      	str	r0, [r4, #80]	@ 0x50
 80004d0:	f001 fc5c 	bl	8001d8c <lamp_board_ir_init>
 80004d4:	2114      	movs	r1, #20
 80004d6:	6560      	str	r0, [r4, #84]	@ 0x54
 80004d8:	4881      	ldr	r0, [pc, #516]	@ (80006e0 <main+0x308>)
 80004da:	f002 fe08 	bl	80030ee <aiw_stream_init>
 80004de:	2800      	cmp	r0, #0
 80004e0:	d101      	bne.n	80004e6 <main+0x10e>
 80004e2:	bf30      	wfi
 80004e4:	e7fd      	b.n	80004e2 <main+0x10a>
 80004e6:	0020      	movs	r0, r4
 80004e8:	497e      	ldr	r1, [pc, #504]	@ (80006e4 <main+0x30c>)
 80004ea:	3058      	adds	r0, #88	@ 0x58
 80004ec:	f003 fd26 	bl	8003f3c <lamp_ui_wire_service_init>
 80004f0:	2800      	cmp	r0, #0
 80004f2:	d101      	bne.n	80004f8 <main+0x120>
 80004f4:	bf30      	wfi
 80004f6:	e7fd      	b.n	80004f4 <main+0x11c>
 80004f8:	21e1      	movs	r1, #225	@ 0xe1
 80004fa:	4c7b      	ldr	r4, [pc, #492]	@ (80006e8 <main+0x310>)
 80004fc:	02c9      	lsls	r1, r1, #11
 80004fe:	6820      	ldr	r0, [r4, #0]
 8000500:	f002 f8b4 	bl	800266c <lamp_uart_init>
 8000504:	2800      	cmp	r0, #0
 8000506:	d100      	bne.n	800050a <main+0x132>
 8000508:	e097      	b.n	800063a <main+0x262>
 800050a:	21fa      	movs	r1, #250	@ 0xfa
 800050c:	6820      	ldr	r0, [r4, #0]
 800050e:	0089      	lsls	r1, r1, #2
 8000510:	f005 f8ee 	bl	80056f0 <__udivsi3>
 8000514:	4b75      	ldr	r3, [pc, #468]	@ (80006ec <main+0x314>)
 8000516:	3801      	subs	r0, #1
 8000518:	4298      	cmp	r0, r3
 800051a:	d900      	bls.n	800051e <main+0x146>
 800051c:	e08d      	b.n	800063a <main+0x262>
 800051e:	21c0      	movs	r1, #192	@ 0xc0
 8000520:	4a73      	ldr	r2, [pc, #460]	@ (80006f0 <main+0x318>)
 8000522:	0609      	lsls	r1, r1, #24
 8000524:	6050      	str	r0, [r2, #4]
 8000526:	4873      	ldr	r0, [pc, #460]	@ (80006f4 <main+0x31c>)
 8000528:	6a03      	ldr	r3, [r0, #32]
 800052a:	021b      	lsls	r3, r3, #8
 800052c:	0a1b      	lsrs	r3, r3, #8
 800052e:	430b      	orrs	r3, r1
 8000530:	6203      	str	r3, [r0, #32]
 8000532:	2300      	movs	r3, #0
 8000534:	6093      	str	r3, [r2, #8]
 8000536:	6017      	str	r7, [r2, #0]
 8000538:	f001 fff4 	bl	8002524 <lamp_read_factory_vrefint_cal>
 800053c:	4b6e      	ldr	r3, [pc, #440]	@ (80006f8 <main+0x320>)
 800053e:	4c6f      	ldr	r4, [pc, #444]	@ (80006fc <main+0x324>)
 8000540:	6218      	str	r0, [r3, #32]
 8000542:	8620      	strh	r0, [r4, #48]	@ 0x30
 8000544:	68a0      	ldr	r0, [r4, #8]
 8000546:	f001 fda3 	bl	8002090 <lamp_adc_init>
 800054a:	68a0      	ldr	r0, [r4, #8]
 800054c:	f000 ff30 	bl	80013b0 <lamp_diagnostic_runtime_init>
 8000550:	a806      	add	r0, sp, #24
 8000552:	f002 f915 	bl	8002780 <lamp_uart_get_stats>
 8000556:	9b06      	ldr	r3, [sp, #24]
 8000558:	9300      	str	r3, [sp, #0]
 800055a:	9b08      	ldr	r3, [sp, #32]
 800055c:	9301      	str	r3, [sp, #4]
 800055e:	9b07      	ldr	r3, [sp, #28]
 8000560:	9302      	str	r3, [sp, #8]
 8000562:	68a3      	ldr	r3, [r4, #8]
 8000564:	9303      	str	r3, [sp, #12]
 8000566:	f7ff fef3 	bl	8000350 <poll_diagnostics>
 800056a:	f7ff fe66 	bl	800023a <sample_and_poll_inputs>
 800056e:	a806      	add	r0, sp, #24
 8000570:	f002 f906 	bl	8002780 <lamp_uart_get_stats>
 8000574:	9b06      	ldr	r3, [sp, #24]
 8000576:	9a00      	ldr	r2, [sp, #0]
 8000578:	4293      	cmp	r3, r2
 800057a:	d107      	bne.n	800058c <main+0x1b4>
 800057c:	9b08      	ldr	r3, [sp, #32]
 800057e:	9a01      	ldr	r2, [sp, #4]
 8000580:	4293      	cmp	r3, r2
 8000582:	d103      	bne.n	800058c <main+0x1b4>
 8000584:	9b07      	ldr	r3, [sp, #28]
 8000586:	9a02      	ldr	r2, [sp, #8]
 8000588:	4293      	cmp	r3, r2
 800058a:	d008      	beq.n	800059e <main+0x1c6>
 800058c:	4854      	ldr	r0, [pc, #336]	@ (80006e0 <main+0x308>)
 800058e:	f002 fdc3 	bl	8003118 <aiw_stream_abort>
 8000592:	9b06      	ldr	r3, [sp, #24]
 8000594:	9300      	str	r3, [sp, #0]
 8000596:	9b08      	ldr	r3, [sp, #32]
 8000598:	9301      	str	r3, [sp, #4]
 800059a:	9b07      	ldr	r3, [sp, #28]
 800059c:	9302      	str	r3, [sp, #8]
 800059e:	2520      	movs	r5, #32
 80005a0:	4b55      	ldr	r3, [pc, #340]	@ (80006f8 <main+0x320>)
 80005a2:	9a00      	ldr	r2, [sp, #0]
 80005a4:	625a      	str	r2, [r3, #36]	@ 0x24
 80005a6:	9a01      	ldr	r2, [sp, #4]
 80005a8:	629a      	str	r2, [r3, #40]	@ 0x28
 80005aa:	ab04      	add	r3, sp, #16
 80005ac:	1cdc      	adds	r4, r3, #3
 80005ae:	0020      	movs	r0, r4
 80005b0:	f002 f8b6 	bl	8002720 <lamp_uart_rx_read>
 80005b4:	2800      	cmp	r0, #0
 80005b6:	d024      	beq.n	8000602 <main+0x22a>
 80005b8:	4f50      	ldr	r7, [pc, #320]	@ (80006fc <main+0x324>)
 80005ba:	ae3a      	add	r6, sp, #232	@ 0xe8
 80005bc:	0033      	movs	r3, r6
 80005be:	68ba      	ldr	r2, [r7, #8]
 80005c0:	7821      	ldrb	r1, [r4, #0]
 80005c2:	4847      	ldr	r0, [pc, #284]	@ (80006e0 <main+0x308>)
 80005c4:	f002 fdbc 	bl	8003140 <aiw_stream_push_message>
 80005c8:	2800      	cmp	r0, #0
 80005ca:	d017      	beq.n	80005fc <main+0x224>
 80005cc:	f7ff fe35 	bl	800023a <sample_and_poll_inputs>
 80005d0:	4c49      	ldr	r4, [pc, #292]	@ (80006f8 <main+0x320>)
 80005d2:	6ae3      	ldr	r3, [r4, #44]	@ 0x2c
 80005d4:	3301      	adds	r3, #1
 80005d6:	62e3      	str	r3, [r4, #44]	@ 0x2c
 80005d8:	7833      	ldrb	r3, [r6, #0]
 80005da:	2b00      	cmp	r3, #0
 80005dc:	d12f      	bne.n	800063e <main+0x266>
 80005de:	9b3e      	ldr	r3, [sp, #248]	@ 0xf8
 80005e0:	4840      	ldr	r0, [pc, #256]	@ (80006e4 <main+0x30c>)
 80005e2:	6323      	str	r3, [r4, #48]	@ 0x30
 80005e4:	68ba      	ldr	r2, [r7, #8]
 80005e6:	a93c      	add	r1, sp, #240	@ 0xf0
 80005e8:	f003 fa66 	bl	8003ab8 <lg_accept_ai_decoded_result>
 80005ec:	2800      	cmp	r0, #0
 80005ee:	d105      	bne.n	80005fc <main+0x224>
 80005f0:	483c      	ldr	r0, [pc, #240]	@ (80006e4 <main+0x30c>)
 80005f2:	f002 ffa3 	bl	800353c <lg_stop>
 80005f6:	6b63      	ldr	r3, [r4, #52]	@ 0x34
 80005f8:	3301      	adds	r3, #1
 80005fa:	6363      	str	r3, [r4, #52]	@ 0x34
 80005fc:	3d01      	subs	r5, #1
 80005fe:	2d00      	cmp	r5, #0
 8000600:	d1d3      	bne.n	80005aa <main+0x1d2>
 8000602:	4b3e      	ldr	r3, [pc, #248]	@ (80006fc <main+0x324>)
 8000604:	9903      	ldr	r1, [sp, #12]
 8000606:	689a      	ldr	r2, [r3, #8]
 8000608:	1a52      	subs	r2, r2, r1
 800060a:	d40e      	bmi.n	800062a <main+0x252>
 800060c:	689a      	ldr	r2, [r3, #8]
 800060e:	4835      	ldr	r0, [pc, #212]	@ (80006e4 <main+0x30c>)
 8000610:	3264      	adds	r2, #100	@ 0x64
 8000612:	6899      	ldr	r1, [r3, #8]
 8000614:	9203      	str	r2, [sp, #12]
 8000616:	2300      	movs	r3, #0
 8000618:	4a39      	ldr	r2, [pc, #228]	@ (8000700 <main+0x328>)
 800061a:	f003 fab2 	bl	8003b82 <lamp_ticket_dispatch_issue>
 800061e:	2801      	cmp	r0, #1
 8000620:	d140      	bne.n	80006a4 <main+0x2cc>
 8000622:	4a35      	ldr	r2, [pc, #212]	@ (80006f8 <main+0x320>)
 8000624:	6c93      	ldr	r3, [r2, #72]	@ 0x48
 8000626:	181b      	adds	r3, r3, r0
 8000628:	6493      	str	r3, [r2, #72]	@ 0x48
 800062a:	f7ff fe91 	bl	8000350 <poll_diagnostics>
 800062e:	f000 ff73 	bl	8001518 <lamp_diagnostic_runtime_needs_poll>
 8000632:	2800      	cmp	r0, #0
 8000634:	d197      	bne.n	8000566 <main+0x18e>
 8000636:	bf30      	wfi
 8000638:	e795      	b.n	8000566 <main+0x18e>
 800063a:	bf30      	wfi
 800063c:	e7fd      	b.n	800063a <main+0x262>
 800063e:	1e5a      	subs	r2, r3, #1
 8000640:	2a01      	cmp	r2, #1
 8000642:	d8db      	bhi.n	80005fc <main+0x224>
 8000644:	2200      	movs	r2, #0
 8000646:	9205      	str	r2, [sp, #20]
 8000648:	2b01      	cmp	r3, #1
 800064a:	d11f      	bne.n	800068c <main+0x2b4>
 800064c:	6ba3      	ldr	r3, [r4, #56]	@ 0x38
 800064e:	3301      	adds	r3, #1
 8000650:	63a3      	str	r3, [r4, #56]	@ 0x38
 8000652:	4b2a      	ldr	r3, [pc, #168]	@ (80006fc <main+0x324>)
 8000654:	482b      	ldr	r0, [pc, #172]	@ (8000704 <main+0x32c>)
 8000656:	689a      	ldr	r2, [r3, #8]
 8000658:	a93a      	add	r1, sp, #232	@ 0xe8
 800065a:	ab0a      	add	r3, sp, #40	@ 0x28
 800065c:	f003 fc7e 	bl	8003f5c <lamp_ui_wire_service_handle>
 8000660:	2800      	cmp	r0, #0
 8000662:	d017      	beq.n	8000694 <main+0x2bc>
 8000664:	22a7      	movs	r2, #167	@ 0xa7
 8000666:	ab05      	add	r3, sp, #20
 8000668:	a910      	add	r1, sp, #64	@ 0x40
 800066a:	a80a      	add	r0, sp, #40	@ 0x28
 800066c:	f002 fc79 	bl	8002f62 <aiw_encode_ui_ack>
 8000670:	2800      	cmp	r0, #0
 8000672:	d00f      	beq.n	8000694 <main+0x2bc>
 8000674:	2000      	movs	r0, #0
 8000676:	9a05      	ldr	r2, [sp, #20]
 8000678:	a910      	add	r1, sp, #64	@ 0x40
 800067a:	f002 f869 	bl	8002750 <lamp_uart_tx_enqueue>
 800067e:	2800      	cmp	r0, #0
 8000680:	d008      	beq.n	8000694 <main+0x2bc>
 8000682:	4a1d      	ldr	r2, [pc, #116]	@ (80006f8 <main+0x320>)
 8000684:	6c13      	ldr	r3, [r2, #64]	@ 0x40
 8000686:	3301      	adds	r3, #1
 8000688:	6413      	str	r3, [r2, #64]	@ 0x40
 800068a:	e7b7      	b.n	80005fc <main+0x224>
 800068c:	6be3      	ldr	r3, [r4, #60]	@ 0x3c
 800068e:	3301      	adds	r3, #1
 8000690:	63e3      	str	r3, [r4, #60]	@ 0x3c
 8000692:	e7de      	b.n	8000652 <main+0x27a>
 8000694:	4813      	ldr	r0, [pc, #76]	@ (80006e4 <main+0x30c>)
 8000696:	f002 ff51 	bl	800353c <lg_stop>
 800069a:	4a17      	ldr	r2, [pc, #92]	@ (80006f8 <main+0x320>)
 800069c:	6c53      	ldr	r3, [r2, #68]	@ 0x44
 800069e:	3301      	adds	r3, #1
 80006a0:	6453      	str	r3, [r2, #68]	@ 0x44
 80006a2:	e7ab      	b.n	80005fc <main+0x224>
 80006a4:	3802      	subs	r0, #2
 80006a6:	b2c0      	uxtb	r0, r0
 80006a8:	2801      	cmp	r0, #1
 80006aa:	d8be      	bhi.n	800062a <main+0x252>
 80006ac:	4a12      	ldr	r2, [pc, #72]	@ (80006f8 <main+0x320>)
 80006ae:	6cd3      	ldr	r3, [r2, #76]	@ 0x4c
 80006b0:	3301      	adds	r3, #1
 80006b2:	64d3      	str	r3, [r2, #76]	@ 0x4c
 80006b4:	e7b9      	b.n	800062a <main+0x252>
 80006b6:	46c0      	nop			@ (mov r8, r8)
 80006b8:	40021000 	.word	0x40021000
 80006bc:	50000400 	.word	0x50000400
 80006c0:	0a100080 	.word	0x0a100080
 80006c4:	ffcfffff 	.word	0xffcfffff
 80006c8:	fcffffff 	.word	0xfcffffff
 80006cc:	40010000 	.word	0x40010000
 80006d0:	50000800 	.word	0x50000800
 80006d4:	cfffffff 	.word	0xcfffffff
 80006d8:	fffcffff 	.word	0xfffcffff
 80006dc:	20000088 	.word	0x20000088
 80006e0:	200004b0 	.word	0x200004b0
 80006e4:	200001e0 	.word	0x200001e0
 80006e8:	20000000 	.word	0x20000000
 80006ec:	00ffffff 	.word	0x00ffffff
 80006f0:	e000e010 	.word	0xe000e010
 80006f4:	e000ed00 	.word	0xe000ed00
 80006f8:	20000108 	.word	0x20000108
 80006fc:	20000008 	.word	0x20000008
 8000700:	08000233 	.word	0x08000233
 8000704:	200000e0 	.word	0x200000e0

08000708 <failed>:
 8000708:	7800      	ldrb	r0, [r0, #0]
 800070a:	3806      	subs	r0, #6
 800070c:	4243      	negs	r3, r0
 800070e:	4158      	adcs	r0, r3
 8000710:	b2c0      	uxtb	r0, r0
 8000712:	4770      	bx	lr

08000714 <cancel>:
 8000714:	b510      	push	{r4, lr}
 8000716:	f000 fa83 	bl	8000c20 <lamp_i2c_read_cancel>
 800071a:	bd10      	pop	{r4, pc}

0800071c <take>:
 800071c:	b510      	push	{r4, lr}
 800071e:	f000 fb13 	bl	8000d48 <lamp_i2c_read_get>
 8000722:	bd10      	pop	{r4, pc}

08000724 <poll>:
 8000724:	b510      	push	{r4, lr}
 8000726:	f000 faa1 	bl	8000c6c <lamp_i2c_read_poll>
 800072a:	bd10      	pop	{r4, pc}

0800072c <begin>:
 800072c:	b510      	push	{r4, lr}
 800072e:	f000 fa31 	bl	8000b94 <lamp_i2c_read_start>
 8000732:	bd10      	pop	{r4, pc}

08000734 <lamp_driver_diagnostics_init>:
 8000734:	b5f0      	push	{r4, r5, r6, r7, lr}
 8000736:	0005      	movs	r5, r0
 8000738:	2000      	movs	r0, #0
 800073a:	4c0b      	ldr	r4, [pc, #44]	@ (8000768 <lamp_driver_diagnostics_init+0x34>)
 800073c:	000e      	movs	r6, r1
 800073e:	7de3      	ldrb	r3, [r4, #23]
 8000740:	b087      	sub	sp, #28
 8000742:	4283      	cmp	r3, r0
 8000744:	d10e      	bne.n	8000764 <lamp_driver_diagnostics_init+0x30>
 8000746:	0020      	movs	r0, r4
 8000748:	f000 fa80 	bl	8000c4c <lamp_i2c_read_reset>
 800074c:	4669      	mov	r1, sp
 800074e:	4b07      	ldr	r3, [pc, #28]	@ (800076c <lamp_driver_diagnostics_init+0x38>)
 8000750:	9604      	str	r6, [sp, #16]
 8000752:	9503      	str	r5, [sp, #12]
 8000754:	cbe0      	ldmia	r3!, {r5, r6, r7}
 8000756:	c1e0      	stmia	r1!, {r5, r6, r7}
 8000758:	4b05      	ldr	r3, [pc, #20]	@ (8000770 <lamp_driver_diagnostics_init+0x3c>)
 800075a:	0021      	movs	r1, r4
 800075c:	cb0c      	ldmia	r3, {r2, r3}
 800075e:	4805      	ldr	r0, [pc, #20]	@ (8000774 <lamp_driver_diagnostics_init+0x40>)
 8000760:	f000 f8b3 	bl	80008ca <pca_async_init>
 8000764:	b007      	add	sp, #28
 8000766:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8000768:	2000057c 	.word	0x2000057c
 800076c:	08005b58 	.word	0x08005b58
 8000770:	08005b50 	.word	0x08005b50
 8000774:	2000059c 	.word	0x2000059c

08000778 <lamp_driver_diagnostics_poll>:
 8000778:	4b04      	ldr	r3, [pc, #16]	@ (800078c <lamp_driver_diagnostics_poll+0x14>)
 800077a:	0001      	movs	r1, r0
 800077c:	7f1b      	ldrb	r3, [r3, #28]
 800077e:	b510      	push	{r4, lr}
 8000780:	2b00      	cmp	r3, #0
 8000782:	d102      	bne.n	800078a <lamp_driver_diagnostics_poll+0x12>
 8000784:	4802      	ldr	r0, [pc, #8]	@ (8000790 <lamp_driver_diagnostics_poll+0x18>)
 8000786:	f000 f8e9 	bl	800095c <pca_async_poll>
 800078a:	bd10      	pop	{r4, pc}
 800078c:	2000057c 	.word	0x2000057c
 8000790:	2000059c 	.word	0x2000059c

08000794 <lamp_driver_diagnostics_get>:
 8000794:	b510      	push	{r4, lr}
 8000796:	0004      	movs	r4, r0
 8000798:	2000      	movs	r0, #0
 800079a:	4b05      	ldr	r3, [pc, #20]	@ (80007b0 <lamp_driver_diagnostics_get+0x1c>)
 800079c:	000a      	movs	r2, r1
 800079e:	7f1b      	ldrb	r3, [r3, #28]
 80007a0:	4283      	cmp	r3, r0
 80007a2:	d103      	bne.n	80007ac <lamp_driver_diagnostics_get+0x18>
 80007a4:	0021      	movs	r1, r4
 80007a6:	4803      	ldr	r0, [pc, #12]	@ (80007b4 <lamp_driver_diagnostics_get+0x20>)
 80007a8:	f000 f9a8 	bl	8000afc <pca_async_get>
 80007ac:	bd10      	pop	{r4, pc}
 80007ae:	46c0      	nop			@ (mov r8, r8)
 80007b0:	2000057c 	.word	0x2000057c
 80007b4:	2000059c 	.word	0x2000059c

080007b8 <lamp_driver_diagnostics_failed>:
 80007b8:	4b01      	ldr	r3, [pc, #4]	@ (80007c0 <lamp_driver_diagnostics_failed+0x8>)
 80007ba:	7818      	ldrb	r0, [r3, #0]
 80007bc:	4770      	bx	lr
 80007be:	46c0      	nop			@ (mov r8, r8)
 80007c0:	20000603 	.word	0x20000603

080007c4 <lamp_driver_diagnostics_abort>:
 80007c4:	b510      	push	{r4, lr}
 80007c6:	4805      	ldr	r0, [pc, #20]	@ (80007dc <lamp_driver_diagnostics_abort+0x18>)
 80007c8:	f000 fa2a 	bl	8000c20 <lamp_i2c_read_cancel>
 80007cc:	2200      	movs	r2, #0
 80007ce:	4b04      	ldr	r3, [pc, #16]	@ (80007e0 <lamp_driver_diagnostics_abort+0x1c>)
 80007d0:	701a      	strb	r2, [r3, #0]
 80007d2:	4b04      	ldr	r3, [pc, #16]	@ (80007e4 <lamp_driver_diagnostics_abort+0x20>)
 80007d4:	3201      	adds	r2, #1
 80007d6:	701a      	strb	r2, [r3, #0]
 80007d8:	bd10      	pop	{r4, pc}
 80007da:	46c0      	nop			@ (mov r8, r8)
 80007dc:	2000057c 	.word	0x2000057c
 80007e0:	20000604 	.word	0x20000604
 80007e4:	20000603 	.word	0x20000603

080007e8 <lamp_driver_diagnostics_pause>:
 80007e8:	b5f0      	push	{r4, r5, r6, r7, lr}
 80007ea:	4d14      	ldr	r5, [pc, #80]	@ (800083c <lamp_driver_diagnostics_pause+0x54>)
 80007ec:	b0a5      	sub	sp, #148	@ 0x94
 80007ee:	7f2c      	ldrb	r4, [r5, #28]
 80007f0:	9001      	str	r0, [sp, #4]
 80007f2:	2c00      	cmp	r4, #0
 80007f4:	d11f      	bne.n	8000836 <lamp_driver_diagnostics_pause+0x4e>
 80007f6:	4b12      	ldr	r3, [pc, #72]	@ (8000840 <lamp_driver_diagnostics_pause+0x58>)
 80007f8:	4e12      	ldr	r6, [pc, #72]	@ (8000844 <lamp_driver_diagnostics_pause+0x5c>)
 80007fa:	781f      	ldrb	r7, [r3, #0]
 80007fc:	42a7      	cmp	r7, r4
 80007fe:	d117      	bne.n	8000830 <lamp_driver_diagnostics_pause+0x48>
 8000800:	f000 fc16 	bl	8001030 <lamp_i2c_owner_idle>
 8000804:	0004      	movs	r4, r0
 8000806:	42b8      	cmp	r0, r7
 8000808:	d012      	beq.n	8000830 <lamp_driver_diagnostics_pause+0x48>
 800080a:	782b      	ldrb	r3, [r5, #0]
 800080c:	003c      	movs	r4, r7
 800080e:	2b05      	cmp	r3, #5
 8000810:	d10e      	bne.n	8000830 <lamp_driver_diagnostics_pause+0x48>
 8000812:	0030      	movs	r0, r6
 8000814:	9901      	ldr	r1, [sp, #4]
 8000816:	aa03      	add	r2, sp, #12
 8000818:	f000 f970 	bl	8000afc <pca_async_get>
 800081c:	0004      	movs	r4, r0
 800081e:	42b8      	cmp	r0, r7
 8000820:	d006      	beq.n	8000830 <lamp_driver_diagnostics_pause+0x48>
 8000822:	2301      	movs	r3, #1
 8000824:	3668      	adds	r6, #104	@ 0x68
 8000826:	0028      	movs	r0, r5
 8000828:	772b      	strb	r3, [r5, #28]
 800082a:	7037      	strb	r7, [r6, #0]
 800082c:	f000 f9f8 	bl	8000c20 <lamp_i2c_read_cancel>
 8000830:	0020      	movs	r0, r4
 8000832:	b025      	add	sp, #148	@ 0x94
 8000834:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8000836:	2400      	movs	r4, #0
 8000838:	e7fa      	b.n	8000830 <lamp_driver_diagnostics_pause+0x48>
 800083a:	46c0      	nop			@ (mov r8, r8)
 800083c:	2000057c 	.word	0x2000057c
 8000840:	20000602 	.word	0x20000602
 8000844:	2000059c 	.word	0x2000059c

08000848 <lamp_driver_diagnostics_resume>:
 8000848:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 800084a:	4e13      	ldr	r6, [pc, #76]	@ (8000898 <lamp_driver_diagnostics_resume+0x50>)
 800084c:	0007      	movs	r7, r0
 800084e:	7f30      	ldrb	r0, [r6, #28]
 8000850:	2800      	cmp	r0, #0
 8000852:	d01e      	beq.n	8000892 <lamp_driver_diagnostics_resume+0x4a>
 8000854:	4b11      	ldr	r3, [pc, #68]	@ (800089c <lamp_driver_diagnostics_resume+0x54>)
 8000856:	4c12      	ldr	r4, [pc, #72]	@ (80008a0 <lamp_driver_diagnostics_resume+0x58>)
 8000858:	7818      	ldrb	r0, [r3, #0]
 800085a:	2800      	cmp	r0, #0
 800085c:	d019      	beq.n	8000892 <lamp_driver_diagnostics_resume+0x4a>
 800085e:	0023      	movs	r3, r4
 8000860:	3367      	adds	r3, #103	@ 0x67
 8000862:	7818      	ldrb	r0, [r3, #0]
 8000864:	2800      	cmp	r0, #0
 8000866:	d115      	bne.n	8000894 <lamp_driver_diagnostics_resume+0x4c>
 8000868:	0023      	movs	r3, r4
 800086a:	3366      	adds	r3, #102	@ 0x66
 800086c:	781d      	ldrb	r5, [r3, #0]
 800086e:	4285      	cmp	r5, r0
 8000870:	d10f      	bne.n	8000892 <lamp_driver_diagnostics_resume+0x4a>
 8000872:	7833      	ldrb	r3, [r6, #0]
 8000874:	2b05      	cmp	r3, #5
 8000876:	d10c      	bne.n	8000892 <lamp_driver_diagnostics_resume+0x4a>
 8000878:	f000 fbda 	bl	8001030 <lamp_i2c_owner_idle>
 800087c:	42a8      	cmp	r0, r5
 800087e:	d008      	beq.n	8000892 <lamp_driver_diagnostics_resume+0x4a>
 8000880:	0023      	movs	r3, r4
 8000882:	3368      	adds	r3, #104	@ 0x68
 8000884:	701d      	strb	r5, [r3, #0]
 8000886:	0023      	movs	r3, r4
 8000888:	3364      	adds	r3, #100	@ 0x64
 800088a:	701d      	strb	r5, [r3, #0]
 800088c:	63e7      	str	r7, [r4, #60]	@ 0x3c
 800088e:	6427      	str	r7, [r4, #64]	@ 0x40
 8000890:	7735      	strb	r5, [r6, #28]
 8000892:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8000894:	2000      	movs	r0, #0
 8000896:	e7fc      	b.n	8000892 <lamp_driver_diagnostics_resume+0x4a>
 8000898:	2000057c 	.word	0x2000057c
 800089c:	20000601 	.word	0x20000601
 80008a0:	2000059c 	.word	0x2000059c

080008a4 <fail>:
 80008a4:	0003      	movs	r3, r0
 80008a6:	2200      	movs	r2, #0
 80008a8:	b510      	push	{r4, lr}
 80008aa:	0004      	movs	r4, r0
 80008ac:	3368      	adds	r3, #104	@ 0x68
 80008ae:	701a      	strb	r2, [r3, #0]
 80008b0:	3b01      	subs	r3, #1
 80008b2:	3201      	adds	r2, #1
 80008b4:	701a      	strb	r2, [r3, #0]
 80008b6:	3466      	adds	r4, #102	@ 0x66
 80008b8:	7823      	ldrb	r3, [r4, #0]
 80008ba:	2b00      	cmp	r3, #0
 80008bc:	d002      	beq.n	80008c4 <fail+0x20>
 80008be:	6943      	ldr	r3, [r0, #20]
 80008c0:	6800      	ldr	r0, [r0, #0]
 80008c2:	4798      	blx	r3
 80008c4:	2300      	movs	r3, #0
 80008c6:	7023      	strb	r3, [r4, #0]
 80008c8:	bd10      	pop	{r4, pc}

080008ca <pca_async_init>:
 80008ca:	b082      	sub	sp, #8
 80008cc:	b570      	push	{r4, r5, r6, lr}
 80008ce:	9d09      	ldr	r5, [sp, #36]	@ 0x24
 80008d0:	0004      	movs	r4, r0
 80008d2:	000e      	movs	r6, r1
 80008d4:	9204      	str	r2, [sp, #16]
 80008d6:	9305      	str	r3, [sp, #20]
 80008d8:	2800      	cmp	r0, #0
 80008da:	d039      	beq.n	8000950 <pca_async_init+0x86>
 80008dc:	22f0      	movs	r2, #240	@ 0xf0
 80008de:	2100      	movs	r1, #0
 80008e0:	f7ff fc6f 	bl	80001c2 <memset>
 80008e4:	2d00      	cmp	r5, #0
 80008e6:	d030      	beq.n	800094a <pca_async_init+0x80>
 80008e8:	9b04      	ldr	r3, [sp, #16]
 80008ea:	2b00      	cmp	r3, #0
 80008ec:	d02d      	beq.n	800094a <pca_async_init+0x80>
 80008ee:	9b05      	ldr	r3, [sp, #20]
 80008f0:	2b00      	cmp	r3, #0
 80008f2:	d02a      	beq.n	800094a <pca_async_init+0x80>
 80008f4:	9b06      	ldr	r3, [sp, #24]
 80008f6:	2b00      	cmp	r3, #0
 80008f8:	d027      	beq.n	800094a <pca_async_init+0x80>
 80008fa:	9b07      	ldr	r3, [sp, #28]
 80008fc:	2b00      	cmp	r3, #0
 80008fe:	d024      	beq.n	800094a <pca_async_init+0x80>
 8000900:	9b08      	ldr	r3, [sp, #32]
 8000902:	2b00      	cmp	r3, #0
 8000904:	d021      	beq.n	800094a <pca_async_init+0x80>
 8000906:	4b13      	ldr	r3, [pc, #76]	@ (8000954 <pca_async_init+0x8a>)
 8000908:	682a      	ldr	r2, [r5, #0]
 800090a:	429a      	cmp	r2, r3
 800090c:	d81d      	bhi.n	800094a <pca_async_init+0x80>
 800090e:	686a      	ldr	r2, [r5, #4]
 8000910:	429a      	cmp	r2, r3
 8000912:	d81a      	bhi.n	800094a <pca_async_init+0x80>
 8000914:	4b10      	ldr	r3, [pc, #64]	@ (8000958 <pca_async_init+0x8e>)
 8000916:	68aa      	ldr	r2, [r5, #8]
 8000918:	429a      	cmp	r2, r3
 800091a:	d816      	bhi.n	800094a <pca_async_init+0x80>
 800091c:	0023      	movs	r3, r4
 800091e:	aa04      	add	r2, sp, #16
 8000920:	c340      	stmia	r3!, {r6}
 8000922:	ca43      	ldmia	r2!, {r0, r1, r6}
 8000924:	c343      	stmia	r3!, {r0, r1, r6}
 8000926:	ca03      	ldmia	r2!, {r0, r1}
 8000928:	c303      	stmia	r3!, {r0, r1}
 800092a:	9b0a      	ldr	r3, [sp, #40]	@ 0x28
 800092c:	2001      	movs	r0, #1
 800092e:	6423      	str	r3, [r4, #64]	@ 0x40
 8000930:	0023      	movs	r3, r4
 8000932:	3365      	adds	r3, #101	@ 0x65
 8000934:	7018      	strb	r0, [r3, #0]
 8000936:	682b      	ldr	r3, [r5, #0]
 8000938:	61a3      	str	r3, [r4, #24]
 800093a:	686b      	ldr	r3, [r5, #4]
 800093c:	61e3      	str	r3, [r4, #28]
 800093e:	68ab      	ldr	r3, [r5, #8]
 8000940:	6223      	str	r3, [r4, #32]
 8000942:	bc70      	pop	{r4, r5, r6}
 8000944:	bc08      	pop	{r3}
 8000946:	b002      	add	sp, #8
 8000948:	4718      	bx	r3
 800094a:	2301      	movs	r3, #1
 800094c:	3467      	adds	r4, #103	@ 0x67
 800094e:	7023      	strb	r3, [r4, #0]
 8000950:	2000      	movs	r0, #0
 8000952:	e7f6      	b.n	8000942 <pca_async_init+0x78>
 8000954:	00ffffff 	.word	0x00ffffff
 8000958:	00001fff 	.word	0x00001fff

0800095c <pca_async_poll>:
 800095c:	b5f0      	push	{r4, r5, r6, r7, lr}
 800095e:	0004      	movs	r4, r0
 8000960:	000d      	movs	r5, r1
 8000962:	b0a9      	sub	sp, #164	@ 0xa4
 8000964:	2800      	cmp	r0, #0
 8000966:	d050      	beq.n	8000a0a <pca_async_poll+0xae>
 8000968:	0003      	movs	r3, r0
 800096a:	3365      	adds	r3, #101	@ 0x65
 800096c:	781b      	ldrb	r3, [r3, #0]
 800096e:	2b00      	cmp	r3, #0
 8000970:	d04b      	beq.n	8000a0a <pca_async_poll+0xae>
 8000972:	0003      	movs	r3, r0
 8000974:	3367      	adds	r3, #103	@ 0x67
 8000976:	781b      	ldrb	r3, [r3, #0]
 8000978:	2b00      	cmp	r3, #0
 800097a:	d146      	bne.n	8000a0a <pca_async_poll+0xae>
 800097c:	6c02      	ldr	r2, [r0, #64]	@ 0x40
 800097e:	1a8a      	subs	r2, r1, r2
 8000980:	2a05      	cmp	r2, #5
 8000982:	d903      	bls.n	800098c <pca_async_poll+0x30>
 8000984:	0020      	movs	r0, r4
 8000986:	f7ff ff8d 	bl	80008a4 <fail>
 800098a:	e03e      	b.n	8000a0a <pca_async_poll+0xae>
 800098c:	0002      	movs	r2, r0
 800098e:	6401      	str	r1, [r0, #64]	@ 0x40
 8000990:	3268      	adds	r2, #104	@ 0x68
 8000992:	7811      	ldrb	r1, [r2, #0]
 8000994:	3064      	adds	r0, #100	@ 0x64
 8000996:	9004      	str	r0, [sp, #16]
 8000998:	2900      	cmp	r1, #0
 800099a:	d001      	beq.n	80009a0 <pca_async_poll+0x44>
 800099c:	7013      	strb	r3, [r2, #0]
 800099e:	7003      	strb	r3, [r0, #0]
 80009a0:	9b04      	ldr	r3, [sp, #16]
 80009a2:	781f      	ldrb	r7, [r3, #0]
 80009a4:	2f00      	cmp	r7, #0
 80009a6:	d132      	bne.n	8000a0e <pca_async_poll+0xb2>
 80009a8:	0023      	movs	r3, r4
 80009aa:	3366      	adds	r3, #102	@ 0x66
 80009ac:	781b      	ldrb	r3, [r3, #0]
 80009ae:	42bb      	cmp	r3, r7
 80009b0:	d12d      	bne.n	8000a0e <pca_async_poll+0xb2>
 80009b2:	63e5      	str	r5, [r4, #60]	@ 0x3c
 80009b4:	2103      	movs	r1, #3
 80009b6:	0038      	movs	r0, r7
 80009b8:	f004 ff20 	bl	80057fc <__aeabi_uidivmod>
 80009bc:	0038      	movs	r0, r7
 80009be:	b2cb      	uxtb	r3, r1
 80009c0:	2103      	movs	r1, #3
 80009c2:	9303      	str	r3, [sp, #12]
 80009c4:	f004 fe94 	bl	80056f0 <__udivsi3>
 80009c8:	0023      	movs	r3, r4
 80009ca:	3366      	adds	r3, #102	@ 0x66
 80009cc:	9305      	str	r3, [sp, #20]
 80009ce:	781b      	ldrb	r3, [r3, #0]
 80009d0:	b2c6      	uxtb	r6, r0
 80009d2:	2b00      	cmp	r3, #0
 80009d4:	d123      	bne.n	8000a1e <pca_async_poll+0xc2>
 80009d6:	2f02      	cmp	r7, #2
 80009d8:	d901      	bls.n	80009de <pca_async_poll+0x82>
 80009da:	2e07      	cmp	r6, #7
 80009dc:	d11c      	bne.n	8000a18 <pca_async_poll+0xbc>
 80009de:	2201      	movs	r2, #1
 80009e0:	4b44      	ldr	r3, [pc, #272]	@ (8000af4 <pca_async_poll+0x198>)
 80009e2:	9903      	ldr	r1, [sp, #12]
 80009e4:	6866      	ldr	r6, [r4, #4]
 80009e6:	5c59      	ldrb	r1, [r3, r1]
 80009e8:	6820      	ldr	r0, [r4, #0]
 80009ea:	002b      	movs	r3, r5
 80009ec:	47b0      	blx	r6
 80009ee:	2800      	cmp	r0, #0
 80009f0:	d0c8      	beq.n	8000984 <pca_async_poll+0x28>
 80009f2:	0023      	movs	r3, r4
 80009f4:	2201      	movs	r2, #1
 80009f6:	3366      	adds	r3, #102	@ 0x66
 80009f8:	701a      	strb	r2, [r3, #0]
 80009fa:	6465      	str	r5, [r4, #68]	@ 0x44
 80009fc:	2f02      	cmp	r7, #2
 80009fe:	d804      	bhi.n	8000a0a <pca_async_poll+0xae>
 8000a00:	9b03      	ldr	r3, [sp, #12]
 8000a02:	3308      	adds	r3, #8
 8000a04:	009b      	lsls	r3, r3, #2
 8000a06:	18e3      	adds	r3, r4, r3
 8000a08:	605d      	str	r5, [r3, #4]
 8000a0a:	b029      	add	sp, #164	@ 0xa4
 8000a0c:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8000a0e:	6be3      	ldr	r3, [r4, #60]	@ 0x3c
 8000a10:	1aeb      	subs	r3, r5, r3
 8000a12:	2b14      	cmp	r3, #20
 8000a14:	d9ce      	bls.n	80009b4 <pca_async_poll+0x58>
 8000a16:	e7b5      	b.n	8000984 <pca_async_poll+0x28>
 8000a18:	3640      	adds	r6, #64	@ 0x40
 8000a1a:	b2f2      	uxtb	r2, r6
 8000a1c:	e7e0      	b.n	80009e0 <pca_async_poll+0x84>
 8000a1e:	6c63      	ldr	r3, [r4, #68]	@ 0x44
 8000a20:	1aeb      	subs	r3, r5, r3
 8000a22:	2b05      	cmp	r3, #5
 8000a24:	d8ae      	bhi.n	8000984 <pca_async_poll+0x28>
 8000a26:	0029      	movs	r1, r5
 8000a28:	68a3      	ldr	r3, [r4, #8]
 8000a2a:	6820      	ldr	r0, [r4, #0]
 8000a2c:	4798      	blx	r3
 8000a2e:	6923      	ldr	r3, [r4, #16]
 8000a30:	6820      	ldr	r0, [r4, #0]
 8000a32:	4798      	blx	r3
 8000a34:	1e07      	subs	r7, r0, #0
 8000a36:	d1a5      	bne.n	8000984 <pca_async_poll+0x28>
 8000a38:	220b      	movs	r2, #11
 8000a3a:	a904      	add	r1, sp, #16
 8000a3c:	1852      	adds	r2, r2, r1
 8000a3e:	68e3      	ldr	r3, [r4, #12]
 8000a40:	0029      	movs	r1, r5
 8000a42:	6820      	ldr	r0, [r4, #0]
 8000a44:	4798      	blx	r3
 8000a46:	42b8      	cmp	r0, r7
 8000a48:	d0df      	beq.n	8000a0a <pca_async_poll+0xae>
 8000a4a:	9b05      	ldr	r3, [sp, #20]
 8000a4c:	aa04      	add	r2, sp, #16
 8000a4e:	701f      	strb	r7, [r3, #0]
 8000a50:	9b03      	ldr	r3, [sp, #12]
 8000a52:	7ad2      	ldrb	r2, [r2, #11]
 8000a54:	00db      	lsls	r3, r3, #3
 8000a56:	18e3      	adds	r3, r4, r3
 8000a58:	199b      	adds	r3, r3, r6
 8000a5a:	334c      	adds	r3, #76	@ 0x4c
 8000a5c:	701a      	strb	r2, [r3, #0]
 8000a5e:	2e07      	cmp	r6, #7
 8000a60:	d103      	bne.n	8000a6a <pca_async_poll+0x10e>
 8000a62:	9b03      	ldr	r3, [sp, #12]
 8000a64:	330c      	adds	r3, #12
 8000a66:	009b      	lsls	r3, r3, #2
 8000a68:	50e5      	str	r5, [r4, r3]
 8000a6a:	9b04      	ldr	r3, [sp, #16]
 8000a6c:	9a04      	ldr	r2, [sp, #16]
 8000a6e:	781b      	ldrb	r3, [r3, #0]
 8000a70:	3301      	adds	r3, #1
 8000a72:	b2db      	uxtb	r3, r3
 8000a74:	7013      	strb	r3, [r2, #0]
 8000a76:	2b18      	cmp	r3, #24
 8000a78:	d1c7      	bne.n	8000a0a <pca_async_poll+0xae>
 8000a7a:	2284      	movs	r2, #132	@ 0x84
 8000a7c:	2100      	movs	r1, #0
 8000a7e:	a807      	add	r0, sp, #28
 8000a80:	f7ff fb9f 	bl	80001c2 <memset>
 8000a84:	0023      	movs	r3, r4
 8000a86:	0027      	movs	r7, r4
 8000a88:	334c      	adds	r3, #76	@ 0x4c
 8000a8a:	9303      	str	r3, [sp, #12]
 8000a8c:	4b1a      	ldr	r3, [pc, #104]	@ (8000af8 <pca_async_poll+0x19c>)
 8000a8e:	3718      	adds	r7, #24
 8000a90:	9305      	str	r3, [sp, #20]
 8000a92:	ae07      	add	r6, sp, #28
 8000a94:	9b03      	ldr	r3, [sp, #12]
 8000a96:	79d9      	ldrb	r1, [r3, #7]
 8000a98:	7818      	ldrb	r0, [r3, #0]
 8000a9a:	9601      	str	r6, [sp, #4]
 8000a9c:	1c5a      	adds	r2, r3, #1
 8000a9e:	683b      	ldr	r3, [r7, #0]
 8000aa0:	9300      	str	r3, [sp, #0]
 8000aa2:	9b05      	ldr	r3, [sp, #20]
 8000aa4:	681b      	ldr	r3, [r3, #0]
 8000aa6:	f003 ff03 	bl	80048b0 <pca_fault_decode>
 8000aaa:	2800      	cmp	r0, #0
 8000aac:	d100      	bne.n	8000ab0 <pca_async_poll+0x154>
 8000aae:	e769      	b.n	8000984 <pca_async_poll+0x28>
 8000ab0:	9a03      	ldr	r2, [sp, #12]
 8000ab2:	68fb      	ldr	r3, [r7, #12]
 8000ab4:	3208      	adds	r2, #8
 8000ab6:	6173      	str	r3, [r6, #20]
 8000ab8:	9203      	str	r2, [sp, #12]
 8000aba:	69bb      	ldr	r3, [r7, #24]
 8000abc:	9a05      	ldr	r2, [sp, #20]
 8000abe:	61b3      	str	r3, [r6, #24]
 8000ac0:	3204      	adds	r2, #4
 8000ac2:	6ca3      	ldr	r3, [r4, #72]	@ 0x48
 8000ac4:	9205      	str	r2, [sp, #20]
 8000ac6:	9903      	ldr	r1, [sp, #12]
 8000ac8:	9a04      	ldr	r2, [sp, #16]
 8000aca:	3301      	adds	r3, #1
 8000acc:	61f3      	str	r3, [r6, #28]
 8000ace:	3704      	adds	r7, #4
 8000ad0:	3628      	adds	r6, #40	@ 0x28
 8000ad2:	428a      	cmp	r2, r1
 8000ad4:	d1de      	bne.n	8000a94 <pca_async_poll+0x138>
 8000ad6:	0020      	movs	r0, r4
 8000ad8:	6be2      	ldr	r2, [r4, #60]	@ 0x3c
 8000ada:	64a3      	str	r3, [r4, #72]	@ 0x48
 8000adc:	9225      	str	r2, [sp, #148]	@ 0x94
 8000ade:	306c      	adds	r0, #108	@ 0x6c
 8000ae0:	2284      	movs	r2, #132	@ 0x84
 8000ae2:	a907      	add	r1, sp, #28
 8000ae4:	9327      	str	r3, [sp, #156]	@ 0x9c
 8000ae6:	9526      	str	r5, [sp, #152]	@ 0x98
 8000ae8:	f7ff fb62 	bl	80001b0 <memcpy>
 8000aec:	2301      	movs	r3, #1
 8000aee:	3468      	adds	r4, #104	@ 0x68
 8000af0:	7023      	strb	r3, [r4, #0]
 8000af2:	e78a      	b.n	8000a0a <pca_async_poll+0xae>
 8000af4:	08005b64 	.word	0x08005b64
 8000af8:	08005b68 	.word	0x08005b68

08000afc <pca_async_get>:
 8000afc:	b570      	push	{r4, r5, r6, lr}
 8000afe:	2800      	cmp	r0, #0
 8000b00:	d102      	bne.n	8000b08 <pca_async_get+0xc>
 8000b02:	2400      	movs	r4, #0
 8000b04:	0020      	movs	r0, r4
 8000b06:	bd70      	pop	{r4, r5, r6, pc}
 8000b08:	2a00      	cmp	r2, #0
 8000b0a:	d0fa      	beq.n	8000b02 <pca_async_get+0x6>
 8000b0c:	0003      	movs	r3, r0
 8000b0e:	3365      	adds	r3, #101	@ 0x65
 8000b10:	781c      	ldrb	r4, [r3, #0]
 8000b12:	2c00      	cmp	r4, #0
 8000b14:	d0f6      	beq.n	8000b04 <pca_async_get+0x8>
 8000b16:	789b      	ldrb	r3, [r3, #2]
 8000b18:	2b00      	cmp	r3, #0
 8000b1a:	d1f2      	bne.n	8000b02 <pca_async_get+0x6>
 8000b1c:	0003      	movs	r3, r0
 8000b1e:	3368      	adds	r3, #104	@ 0x68
 8000b20:	781c      	ldrb	r4, [r3, #0]
 8000b22:	2c00      	cmp	r4, #0
 8000b24:	d0ee      	beq.n	8000b04 <pca_async_get+0x8>
 8000b26:	6bc3      	ldr	r3, [r0, #60]	@ 0x3c
 8000b28:	1acb      	subs	r3, r1, r3
 8000b2a:	2b14      	cmp	r3, #20
 8000b2c:	d8e9      	bhi.n	8000b02 <pca_async_get+0x6>
 8000b2e:	6c03      	ldr	r3, [r0, #64]	@ 0x40
 8000b30:	1ac9      	subs	r1, r1, r3
 8000b32:	2905      	cmp	r1, #5
 8000b34:	d8e5      	bhi.n	8000b02 <pca_async_get+0x6>
 8000b36:	0001      	movs	r1, r0
 8000b38:	0010      	movs	r0, r2
 8000b3a:	316c      	adds	r1, #108	@ 0x6c
 8000b3c:	2284      	movs	r2, #132	@ 0x84
 8000b3e:	f7ff fb37 	bl	80001b0 <memcpy>
 8000b42:	e7df      	b.n	8000b04 <pca_async_get+0x8>

08000b44 <fail>:
 8000b44:	b570      	push	{r4, r5, r6, lr}
 8000b46:	0004      	movs	r4, r0
 8000b48:	000d      	movs	r5, r1
 8000b4a:	f000 fa59 	bl	8001000 <lamp_i2c_owner_is>
 8000b4e:	2306      	movs	r3, #6
 8000b50:	7023      	strb	r3, [r4, #0]
 8000b52:	2800      	cmp	r0, #0
 8000b54:	d101      	bne.n	8000b5a <fail+0x16>
 8000b56:	7620      	strb	r0, [r4, #24]
 8000b58:	bd70      	pop	{r4, r5, r6, pc}
 8000b5a:	2300      	movs	r3, #0
 8000b5c:	6125      	str	r5, [r4, #16]
 8000b5e:	7623      	strb	r3, [r4, #24]
 8000b60:	4b0a      	ldr	r3, [pc, #40]	@ (8000b8c <fail+0x48>)
 8000b62:	05ad      	lsls	r5, r5, #22
 8000b64:	d407      	bmi.n	8000b76 <fail+0x32>
 8000b66:	699a      	ldr	r2, [r3, #24]
 8000b68:	0412      	lsls	r2, r2, #16
 8000b6a:	d504      	bpl.n	8000b76 <fail+0x32>
 8000b6c:	2280      	movs	r2, #128	@ 0x80
 8000b6e:	6859      	ldr	r1, [r3, #4]
 8000b70:	01d2      	lsls	r2, r2, #7
 8000b72:	430a      	orrs	r2, r1
 8000b74:	605a      	str	r2, [r3, #4]
 8000b76:	2101      	movs	r1, #1
 8000b78:	681a      	ldr	r2, [r3, #0]
 8000b7a:	0020      	movs	r0, r4
 8000b7c:	438a      	bics	r2, r1
 8000b7e:	601a      	str	r2, [r3, #0]
 8000b80:	4a03      	ldr	r2, [pc, #12]	@ (8000b90 <fail+0x4c>)
 8000b82:	61da      	str	r2, [r3, #28]
 8000b84:	f000 fa48 	bl	8001018 <lamp_i2c_owner_release>
 8000b88:	e7e6      	b.n	8000b58 <fail+0x14>
 8000b8a:	46c0      	nop			@ (mov r8, r8)
 8000b8c:	40005400 	.word	0x40005400
 8000b90:	00001730 	.word	0x00001730

08000b94 <lamp_i2c_read_start>:
 8000b94:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8000b96:	0004      	movs	r4, r0
 8000b98:	000d      	movs	r5, r1
 8000b9a:	0017      	movs	r7, r2
 8000b9c:	9300      	str	r3, [sp, #0]
 8000b9e:	2800      	cmp	r0, #0
 8000ba0:	d101      	bne.n	8000ba6 <lamp_i2c_read_start+0x12>
 8000ba2:	2000      	movs	r0, #0
 8000ba4:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8000ba6:	7803      	ldrb	r3, [r0, #0]
 8000ba8:	2b00      	cmp	r3, #0
 8000baa:	d001      	beq.n	8000bb0 <lamp_i2c_read_start+0x1c>
 8000bac:	2b05      	cmp	r3, #5
 8000bae:	d1f8      	bne.n	8000ba2 <lamp_i2c_read_start+0xe>
 8000bb0:	2300      	movs	r3, #0
 8000bb2:	7623      	strb	r3, [r4, #24]
 8000bb4:	002b      	movs	r3, r5
 8000bb6:	22fb      	movs	r2, #251	@ 0xfb
 8000bb8:	3b15      	subs	r3, #21
 8000bba:	4213      	tst	r3, r2
 8000bbc:	d001      	beq.n	8000bc2 <lamp_i2c_read_start+0x2e>
 8000bbe:	2d65      	cmp	r5, #101	@ 0x65
 8000bc0:	d1ef      	bne.n	8000ba2 <lamp_i2c_read_start+0xe>
 8000bc2:	2f39      	cmp	r7, #57	@ 0x39
 8000bc4:	d903      	bls.n	8000bce <lamp_i2c_read_start+0x3a>
 8000bc6:	003b      	movs	r3, r7
 8000bc8:	3b41      	subs	r3, #65	@ 0x41
 8000bca:	2b05      	cmp	r3, #5
 8000bcc:	d8e9      	bhi.n	8000ba2 <lamp_i2c_read_start+0xe>
 8000bce:	f000 f97b 	bl	8000ec8 <lamp_i2c_clock_available>
 8000bd2:	2800      	cmp	r0, #0
 8000bd4:	d0e6      	beq.n	8000ba4 <lamp_i2c_read_start+0x10>
 8000bd6:	4e0f      	ldr	r6, [pc, #60]	@ (8000c14 <lamp_i2c_read_start+0x80>)
 8000bd8:	4b0f      	ldr	r3, [pc, #60]	@ (8000c18 <lamp_i2c_read_start+0x84>)
 8000bda:	69b2      	ldr	r2, [r6, #24]
 8000bdc:	0011      	movs	r1, r2
 8000bde:	4019      	ands	r1, r3
 8000be0:	9101      	str	r1, [sp, #4]
 8000be2:	421a      	tst	r2, r3
 8000be4:	d1dd      	bne.n	8000ba2 <lamp_i2c_read_start+0xe>
 8000be6:	0020      	movs	r0, r4
 8000be8:	f000 f9fc 	bl	8000fe4 <lamp_i2c_owner_acquire>
 8000bec:	2800      	cmp	r0, #0
 8000bee:	d0d9      	beq.n	8000ba4 <lamp_i2c_read_start+0x10>
 8000bf0:	9b00      	ldr	r3, [sp, #0]
 8000bf2:	7525      	strb	r5, [r4, #20]
 8000bf4:	6063      	str	r3, [r4, #4]
 8000bf6:	60a3      	str	r3, [r4, #8]
 8000bf8:	9b01      	ldr	r3, [sp, #4]
 8000bfa:	7567      	strb	r7, [r4, #21]
 8000bfc:	6123      	str	r3, [r4, #16]
 8000bfe:	2301      	movs	r3, #1
 8000c00:	75e3      	strb	r3, [r4, #23]
 8000c02:	7023      	strb	r3, [r4, #0]
 8000c04:	4b05      	ldr	r3, [pc, #20]	@ (8000c1c <lamp_i2c_read_start+0x88>)
 8000c06:	006d      	lsls	r5, r5, #1
 8000c08:	61f3      	str	r3, [r6, #28]
 8000c0a:	2390      	movs	r3, #144	@ 0x90
 8000c0c:	025b      	lsls	r3, r3, #9
 8000c0e:	432b      	orrs	r3, r5
 8000c10:	6073      	str	r3, [r6, #4]
 8000c12:	e7c7      	b.n	8000ba4 <lamp_i2c_read_start+0x10>
 8000c14:	40005400 	.word	0x40005400
 8000c18:	000097d4 	.word	0x000097d4
 8000c1c:	00001730 	.word	0x00001730

08000c20 <lamp_i2c_read_cancel>:
 8000c20:	b510      	push	{r4, lr}
 8000c22:	2800      	cmp	r0, #0
 8000c24:	d00b      	beq.n	8000c3e <lamp_i2c_read_cancel+0x1e>
 8000c26:	7dc3      	ldrb	r3, [r0, #23]
 8000c28:	2b00      	cmp	r3, #0
 8000c2a:	d008      	beq.n	8000c3e <lamp_i2c_read_cancel+0x1e>
 8000c2c:	7803      	ldrb	r3, [r0, #0]
 8000c2e:	3b01      	subs	r3, #1
 8000c30:	b2db      	uxtb	r3, r3
 8000c32:	2b03      	cmp	r3, #3
 8000c34:	d804      	bhi.n	8000c40 <lamp_i2c_read_cancel+0x20>
 8000c36:	4b04      	ldr	r3, [pc, #16]	@ (8000c48 <lamp_i2c_read_cancel+0x28>)
 8000c38:	6999      	ldr	r1, [r3, #24]
 8000c3a:	f7ff ff83 	bl	8000b44 <fail>
 8000c3e:	bd10      	pop	{r4, pc}
 8000c40:	2300      	movs	r3, #0
 8000c42:	7603      	strb	r3, [r0, #24]
 8000c44:	e7fb      	b.n	8000c3e <lamp_i2c_read_cancel+0x1e>
 8000c46:	46c0      	nop			@ (mov r8, r8)
 8000c48:	40005400 	.word	0x40005400

08000c4c <lamp_i2c_read_reset>:
 8000c4c:	b510      	push	{r4, lr}
 8000c4e:	1e04      	subs	r4, r0, #0
 8000c50:	d00b      	beq.n	8000c6a <lamp_i2c_read_reset+0x1e>
 8000c52:	f000 f9d5 	bl	8001000 <lamp_i2c_owner_is>
 8000c56:	2800      	cmp	r0, #0
 8000c58:	d002      	beq.n	8000c60 <lamp_i2c_read_reset+0x14>
 8000c5a:	0020      	movs	r0, r4
 8000c5c:	f7ff ffe0 	bl	8000c20 <lamp_i2c_read_cancel>
 8000c60:	221c      	movs	r2, #28
 8000c62:	2100      	movs	r1, #0
 8000c64:	0020      	movs	r0, r4
 8000c66:	f7ff faac 	bl	80001c2 <memset>
 8000c6a:	bd10      	pop	{r4, pc}

08000c6c <lamp_i2c_read_poll>:
 8000c6c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8000c6e:	0004      	movs	r4, r0
 8000c70:	000f      	movs	r7, r1
 8000c72:	2800      	cmp	r0, #0
 8000c74:	d035      	beq.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000c76:	7dc3      	ldrb	r3, [r0, #23]
 8000c78:	2b00      	cmp	r3, #0
 8000c7a:	d032      	beq.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000c7c:	7803      	ldrb	r3, [r0, #0]
 8000c7e:	2b00      	cmp	r3, #0
 8000c80:	d02f      	beq.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000c82:	3b05      	subs	r3, #5
 8000c84:	2b01      	cmp	r3, #1
 8000c86:	d92c      	bls.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000c88:	4e2c      	ldr	r6, [pc, #176]	@ (8000d3c <lamp_i2c_read_poll+0xd0>)
 8000c8a:	6843      	ldr	r3, [r0, #4]
 8000c8c:	69b5      	ldr	r5, [r6, #24]
 8000c8e:	1acb      	subs	r3, r1, r3
 8000c90:	2b05      	cmp	r3, #5
 8000c92:	d81b      	bhi.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000c94:	6883      	ldr	r3, [r0, #8]
 8000c96:	1acb      	subs	r3, r1, r3
 8000c98:	2b05      	cmp	r3, #5
 8000c9a:	d817      	bhi.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000c9c:	f000 f914 	bl	8000ec8 <lamp_i2c_clock_available>
 8000ca0:	2800      	cmp	r0, #0
 8000ca2:	d013      	beq.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000ca4:	0020      	movs	r0, r4
 8000ca6:	f000 f9ab 	bl	8001000 <lamp_i2c_owner_is>
 8000caa:	2800      	cmp	r0, #0
 8000cac:	d00e      	beq.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000cae:	4b24      	ldr	r3, [pc, #144]	@ (8000d40 <lamp_i2c_read_poll+0xd4>)
 8000cb0:	421d      	tst	r5, r3
 8000cb2:	d10b      	bne.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000cb4:	7820      	ldrb	r0, [r4, #0]
 8000cb6:	60a7      	str	r7, [r4, #8]
 8000cb8:	3801      	subs	r0, #1
 8000cba:	2803      	cmp	r0, #3
 8000cbc:	d806      	bhi.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000cbe:	f004 fd0d 	bl	80056dc <__gnu_thumb1_case_uqi>
 8000cc2:	1102      	.short	0x1102
 8000cc4:	271d      	.short	0x271d
 8000cc6:	23e4      	movs	r3, #228	@ 0xe4
 8000cc8:	421d      	tst	r5, r3
 8000cca:	d004      	beq.n	8000cd6 <lamp_i2c_read_poll+0x6a>
 8000ccc:	0029      	movs	r1, r5
 8000cce:	0020      	movs	r0, r4
 8000cd0:	f7ff ff38 	bl	8000b44 <fail>
 8000cd4:	e005      	b.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000cd6:	2302      	movs	r3, #2
 8000cd8:	421d      	tst	r5, r3
 8000cda:	d002      	beq.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000cdc:	7d62      	ldrb	r2, [r4, #21]
 8000cde:	62b2      	str	r2, [r6, #40]	@ 0x28
 8000ce0:	7023      	strb	r3, [r4, #0]
 8000ce2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8000ce4:	23a4      	movs	r3, #164	@ 0xa4
 8000ce6:	421d      	tst	r5, r3
 8000ce8:	d1f0      	bne.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000cea:	066d      	lsls	r5, r5, #25
 8000cec:	d5f9      	bpl.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000cee:	7d22      	ldrb	r2, [r4, #20]
 8000cf0:	4b14      	ldr	r3, [pc, #80]	@ (8000d44 <lamp_i2c_read_poll+0xd8>)
 8000cf2:	0052      	lsls	r2, r2, #1
 8000cf4:	4313      	orrs	r3, r2
 8000cf6:	6073      	str	r3, [r6, #4]
 8000cf8:	2303      	movs	r3, #3
 8000cfa:	e7f1      	b.n	8000ce0 <lamp_i2c_read_poll+0x74>
 8000cfc:	2304      	movs	r3, #4
 8000cfe:	421d      	tst	r5, r3
 8000d00:	d002      	beq.n	8000d08 <lamp_i2c_read_poll+0x9c>
 8000d02:	6a72      	ldr	r2, [r6, #36]	@ 0x24
 8000d04:	75a2      	strb	r2, [r4, #22]
 8000d06:	e7eb      	b.n	8000ce0 <lamp_i2c_read_poll+0x74>
 8000d08:	23e0      	movs	r3, #224	@ 0xe0
 8000d0a:	421d      	tst	r5, r3
 8000d0c:	d0e9      	beq.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000d0e:	e7dd      	b.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000d10:	076b      	lsls	r3, r5, #29
 8000d12:	d4db      	bmi.n	8000ccc <lamp_i2c_read_poll+0x60>
 8000d14:	2320      	movs	r3, #32
 8000d16:	421d      	tst	r5, r3
 8000d18:	d0e3      	beq.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000d1a:	2280      	movs	r2, #128	@ 0x80
 8000d1c:	0029      	movs	r1, r5
 8000d1e:	0212      	lsls	r2, r2, #8
 8000d20:	4011      	ands	r1, r2
 8000d22:	4215      	tst	r5, r2
 8000d24:	d1dd      	bne.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000d26:	61f3      	str	r3, [r6, #28]
 8000d28:	3b1b      	subs	r3, #27
 8000d2a:	6071      	str	r1, [r6, #4]
 8000d2c:	7023      	strb	r3, [r4, #0]
 8000d2e:	3b04      	subs	r3, #4
 8000d30:	0020      	movs	r0, r4
 8000d32:	60e7      	str	r7, [r4, #12]
 8000d34:	7623      	strb	r3, [r4, #24]
 8000d36:	f000 f96f 	bl	8001018 <lamp_i2c_owner_release>
 8000d3a:	e7d2      	b.n	8000ce2 <lamp_i2c_read_poll+0x76>
 8000d3c:	40005400 	.word	0x40005400
 8000d40:	00001710 	.word	0x00001710
 8000d44:	02012400 	.word	0x02012400

08000d48 <lamp_i2c_read_get>:
 8000d48:	b570      	push	{r4, r5, r6, lr}
 8000d4a:	0004      	movs	r4, r0
 8000d4c:	0015      	movs	r5, r2
 8000d4e:	2800      	cmp	r0, #0
 8000d50:	d101      	bne.n	8000d56 <lamp_i2c_read_get+0xe>
 8000d52:	2000      	movs	r0, #0
 8000d54:	bd70      	pop	{r4, r5, r6, pc}
 8000d56:	2a00      	cmp	r2, #0
 8000d58:	d0fb      	beq.n	8000d52 <lamp_i2c_read_get+0xa>
 8000d5a:	7dc0      	ldrb	r0, [r0, #23]
 8000d5c:	2800      	cmp	r0, #0
 8000d5e:	d0f9      	beq.n	8000d54 <lamp_i2c_read_get+0xc>
 8000d60:	7e20      	ldrb	r0, [r4, #24]
 8000d62:	2800      	cmp	r0, #0
 8000d64:	d0f6      	beq.n	8000d54 <lamp_i2c_read_get+0xc>
 8000d66:	7823      	ldrb	r3, [r4, #0]
 8000d68:	2b05      	cmp	r3, #5
 8000d6a:	d1f2      	bne.n	8000d52 <lamp_i2c_read_get+0xa>
 8000d6c:	6863      	ldr	r3, [r4, #4]
 8000d6e:	1acb      	subs	r3, r1, r3
 8000d70:	2b14      	cmp	r3, #20
 8000d72:	d8ee      	bhi.n	8000d52 <lamp_i2c_read_get+0xa>
 8000d74:	68a3      	ldr	r3, [r4, #8]
 8000d76:	1ac9      	subs	r1, r1, r3
 8000d78:	2905      	cmp	r1, #5
 8000d7a:	d8ea      	bhi.n	8000d52 <lamp_i2c_read_get+0xa>
 8000d7c:	f000 f8a4 	bl	8000ec8 <lamp_i2c_clock_available>
 8000d80:	2800      	cmp	r0, #0
 8000d82:	d0e7      	beq.n	8000d54 <lamp_i2c_read_get+0xc>
 8000d84:	7da3      	ldrb	r3, [r4, #22]
 8000d86:	702b      	strb	r3, [r5, #0]
 8000d88:	e7e4      	b.n	8000d54 <lamp_i2c_read_get+0xc>
 8000d8a:	46c0      	nop			@ (mov r8, r8)

08000d8c <locked>:
 8000d8c:	4b06      	ldr	r3, [pc, #24]	@ (8000da8 <locked+0x1c>)
 8000d8e:	2000      	movs	r0, #0
 8000d90:	69da      	ldr	r2, [r3, #28]
 8000d92:	03d2      	lsls	r2, r2, #15
 8000d94:	d506      	bpl.n	8000da4 <locked+0x18>
 8000d96:	69d8      	ldr	r0, [r3, #28]
 8000d98:	23fc      	movs	r3, #252	@ 0xfc
 8000d9a:	005b      	lsls	r3, r3, #1
 8000d9c:	4018      	ands	r0, r3
 8000d9e:	1e43      	subs	r3, r0, #1
 8000da0:	4198      	sbcs	r0, r3
 8000da2:	b2c0      	uxtb	r0, r0
 8000da4:	4770      	bx	lr
 8000da6:	46c0      	nop			@ (mov r8, r8)
 8000da8:	50000400 	.word	0x50000400

08000dac <lamp_i2c_pins_available>:
 8000dac:	4b16      	ldr	r3, [pc, #88]	@ (8000e08 <lamp_i2c_pins_available+0x5c>)
 8000dae:	b510      	push	{r4, lr}
 8000db0:	781b      	ldrb	r3, [r3, #0]
 8000db2:	2b00      	cmp	r3, #0
 8000db4:	d101      	bne.n	8000dba <lamp_i2c_pins_available+0xe>
 8000db6:	2000      	movs	r0, #0
 8000db8:	bd10      	pop	{r4, pc}
 8000dba:	4b14      	ldr	r3, [pc, #80]	@ (8000e0c <lamp_i2c_pins_available+0x60>)
 8000dbc:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 8000dbe:	0792      	lsls	r2, r2, #30
 8000dc0:	d5f9      	bpl.n	8000db6 <lamp_i2c_pins_available+0xa>
 8000dc2:	6bdb      	ldr	r3, [r3, #60]	@ 0x3c
 8000dc4:	029b      	lsls	r3, r3, #10
 8000dc6:	d5f6      	bpl.n	8000db6 <lamp_i2c_pins_available+0xa>
 8000dc8:	f7ff ffe0 	bl	8000d8c <locked>
 8000dcc:	2800      	cmp	r0, #0
 8000dce:	d1f2      	bne.n	8000db6 <lamp_i2c_pins_available+0xa>
 8000dd0:	4b0f      	ldr	r3, [pc, #60]	@ (8000e10 <lamp_i2c_pins_available+0x64>)
 8000dd2:	4910      	ldr	r1, [pc, #64]	@ (8000e14 <lamp_i2c_pins_available+0x68>)
 8000dd4:	681a      	ldr	r2, [r3, #0]
 8000dd6:	4810      	ldr	r0, [pc, #64]	@ (8000e18 <lamp_i2c_pins_available+0x6c>)
 8000dd8:	400a      	ands	r2, r1
 8000dda:	4282      	cmp	r2, r0
 8000ddc:	d1eb      	bne.n	8000db6 <lamp_i2c_pins_available+0xa>
 8000dde:	68da      	ldr	r2, [r3, #12]
 8000de0:	420a      	tst	r2, r1
 8000de2:	d1e8      	bne.n	8000db6 <lamp_i2c_pins_available+0xa>
 8000de4:	21c0      	movs	r1, #192	@ 0xc0
 8000de6:	685a      	ldr	r2, [r3, #4]
 8000de8:	400a      	ands	r2, r1
 8000dea:	428a      	cmp	r2, r1
 8000dec:	d1e3      	bne.n	8000db6 <lamp_i2c_pins_available+0xa>
 8000dee:	21cc      	movs	r1, #204	@ 0xcc
 8000df0:	6a1a      	ldr	r2, [r3, #32]
 8000df2:	05c9      	lsls	r1, r1, #23
 8000df4:	0b12      	lsrs	r2, r2, #12
 8000df6:	0312      	lsls	r2, r2, #12
 8000df8:	428a      	cmp	r2, r1
 8000dfa:	d1dc      	bne.n	8000db6 <lamp_i2c_pins_available+0xa>
 8000dfc:	6a58      	ldr	r0, [r3, #36]	@ 0x24
 8000dfe:	230f      	movs	r3, #15
 8000e00:	4018      	ands	r0, r3
 8000e02:	4243      	negs	r3, r0
 8000e04:	4158      	adcs	r0, r3
 8000e06:	e7d7      	b.n	8000db8 <lamp_i2c_pins_available+0xc>
 8000e08:	2000068c 	.word	0x2000068c
 8000e0c:	40021000 	.word	0x40021000
 8000e10:	50000400 	.word	0x50000400
 8000e14:	0003ffc0 	.word	0x0003ffc0
 8000e18:	0003afc0 	.word	0x0003afc0

08000e1c <lamp_i2c_pins_init>:
 8000e1c:	2202      	movs	r2, #2
 8000e1e:	b570      	push	{r4, r5, r6, lr}
 8000e20:	2500      	movs	r5, #0
 8000e22:	4b22      	ldr	r3, [pc, #136]	@ (8000eac <lamp_i2c_pins_init+0x90>)
 8000e24:	4c22      	ldr	r4, [pc, #136]	@ (8000eb0 <lamp_i2c_pins_init+0x94>)
 8000e26:	6b59      	ldr	r1, [r3, #52]	@ 0x34
 8000e28:	7025      	strb	r5, [r4, #0]
 8000e2a:	430a      	orrs	r2, r1
 8000e2c:	635a      	str	r2, [r3, #52]	@ 0x34
 8000e2e:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 8000e30:	2280      	movs	r2, #128	@ 0x80
 8000e32:	6bd9      	ldr	r1, [r3, #60]	@ 0x3c
 8000e34:	0392      	lsls	r2, r2, #14
 8000e36:	430a      	orrs	r2, r1
 8000e38:	63da      	str	r2, [r3, #60]	@ 0x3c
 8000e3a:	6bdb      	ldr	r3, [r3, #60]	@ 0x3c
 8000e3c:	f7ff ffa6 	bl	8000d8c <locked>
 8000e40:	42a8      	cmp	r0, r5
 8000e42:	d130      	bne.n	8000ea6 <lamp_i2c_pins_init+0x8a>
 8000e44:	2101      	movs	r1, #1
 8000e46:	4b1b      	ldr	r3, [pc, #108]	@ (8000eb4 <lamp_i2c_pins_init+0x98>)
 8000e48:	681b      	ldr	r3, [r3, #0]
 8000e4a:	420b      	tst	r3, r1
 8000e4c:	d12a      	bne.n	8000ea4 <lamp_i2c_pins_init+0x88>
 8000e4e:	4b1a      	ldr	r3, [pc, #104]	@ (8000eb8 <lamp_i2c_pins_init+0x9c>)
 8000e50:	4a1a      	ldr	r2, [pc, #104]	@ (8000ebc <lamp_i2c_pins_init+0xa0>)
 8000e52:	6818      	ldr	r0, [r3, #0]
 8000e54:	4d1a      	ldr	r5, [pc, #104]	@ (8000ec0 <lamp_i2c_pins_init+0xa4>)
 8000e56:	4302      	orrs	r2, r0
 8000e58:	20cc      	movs	r0, #204	@ 0xcc
 8000e5a:	601a      	str	r2, [r3, #0]
 8000e5c:	68da      	ldr	r2, [r3, #12]
 8000e5e:	05c0      	lsls	r0, r0, #23
 8000e60:	402a      	ands	r2, r5
 8000e62:	60da      	str	r2, [r3, #12]
 8000e64:	6a1a      	ldr	r2, [r3, #32]
 8000e66:	0512      	lsls	r2, r2, #20
 8000e68:	0d12      	lsrs	r2, r2, #20
 8000e6a:	4302      	orrs	r2, r0
 8000e6c:	200f      	movs	r0, #15
 8000e6e:	621a      	str	r2, [r3, #32]
 8000e70:	6a5a      	ldr	r2, [r3, #36]	@ 0x24
 8000e72:	4382      	bics	r2, r0
 8000e74:	625a      	str	r2, [r3, #36]	@ 0x24
 8000e76:	22c0      	movs	r2, #192	@ 0xc0
 8000e78:	619a      	str	r2, [r3, #24]
 8000e7a:	6858      	ldr	r0, [r3, #4]
 8000e7c:	4302      	orrs	r2, r0
 8000e7e:	605a      	str	r2, [r3, #4]
 8000e80:	689a      	ldr	r2, [r3, #8]
 8000e82:	402a      	ands	r2, r5
 8000e84:	609a      	str	r2, [r3, #8]
 8000e86:	f3bf 8f4f 	dsb	sy
 8000e8a:	6818      	ldr	r0, [r3, #0]
 8000e8c:	4a0d      	ldr	r2, [pc, #52]	@ (8000ec4 <lamp_i2c_pins_init+0xa8>)
 8000e8e:	4028      	ands	r0, r5
 8000e90:	4302      	orrs	r2, r0
 8000e92:	601a      	str	r2, [r3, #0]
 8000e94:	f3bf 8f4f 	dsb	sy
 8000e98:	7021      	strb	r1, [r4, #0]
 8000e9a:	f7ff ff87 	bl	8000dac <lamp_i2c_pins_available>
 8000e9e:	2800      	cmp	r0, #0
 8000ea0:	d100      	bne.n	8000ea4 <lamp_i2c_pins_init+0x88>
 8000ea2:	7020      	strb	r0, [r4, #0]
 8000ea4:	bd70      	pop	{r4, r5, r6, pc}
 8000ea6:	0028      	movs	r0, r5
 8000ea8:	e7fc      	b.n	8000ea4 <lamp_i2c_pins_init+0x88>
 8000eaa:	46c0      	nop			@ (mov r8, r8)
 8000eac:	40021000 	.word	0x40021000
 8000eb0:	2000068c 	.word	0x2000068c
 8000eb4:	40005400 	.word	0x40005400
 8000eb8:	50000400 	.word	0x50000400
 8000ebc:	0003ffc0 	.word	0x0003ffc0
 8000ec0:	fffc003f 	.word	0xfffc003f
 8000ec4:	0003afc0 	.word	0x0003afc0

08000ec8 <lamp_i2c_clock_available>:
 8000ec8:	4b17      	ldr	r3, [pc, #92]	@ (8000f28 <lamp_i2c_clock_available+0x60>)
 8000eca:	b510      	push	{r4, lr}
 8000ecc:	781b      	ldrb	r3, [r3, #0]
 8000ece:	2b00      	cmp	r3, #0
 8000ed0:	d101      	bne.n	8000ed6 <lamp_i2c_clock_available+0xe>
 8000ed2:	2000      	movs	r0, #0
 8000ed4:	bd10      	pop	{r4, pc}
 8000ed6:	f7ff ff69 	bl	8000dac <lamp_i2c_pins_available>
 8000eda:	2800      	cmp	r0, #0
 8000edc:	d0f9      	beq.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000ede:	4b13      	ldr	r3, [pc, #76]	@ (8000f2c <lamp_i2c_clock_available+0x64>)
 8000ee0:	6bda      	ldr	r2, [r3, #60]	@ 0x3c
 8000ee2:	0292      	lsls	r2, r2, #10
 8000ee4:	d5f5      	bpl.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000ee6:	21a0      	movs	r1, #160	@ 0xa0
 8000ee8:	681a      	ldr	r2, [r3, #0]
 8000eea:	00c9      	lsls	r1, r1, #3
 8000eec:	400a      	ands	r2, r1
 8000eee:	428a      	cmp	r2, r1
 8000ef0:	d1ef      	bne.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000ef2:	22c0      	movs	r2, #192	@ 0xc0
 8000ef4:	6d5b      	ldr	r3, [r3, #84]	@ 0x54
 8000ef6:	0192      	lsls	r2, r2, #6
 8000ef8:	4013      	ands	r3, r2
 8000efa:	2280      	movs	r2, #128	@ 0x80
 8000efc:	0192      	lsls	r2, r2, #6
 8000efe:	4293      	cmp	r3, r2
 8000f00:	d1e7      	bne.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000f02:	4b0b      	ldr	r3, [pc, #44]	@ (8000f30 <lamp_i2c_clock_available+0x68>)
 8000f04:	4a0b      	ldr	r2, [pc, #44]	@ (8000f34 <lamp_i2c_clock_available+0x6c>)
 8000f06:	6919      	ldr	r1, [r3, #16]
 8000f08:	4291      	cmp	r1, r2
 8000f0a:	d1e2      	bne.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000f0c:	681a      	ldr	r2, [r3, #0]
 8000f0e:	2a01      	cmp	r2, #1
 8000f10:	d1df      	bne.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000f12:	689a      	ldr	r2, [r3, #8]
 8000f14:	2a00      	cmp	r2, #0
 8000f16:	d1dc      	bne.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000f18:	68da      	ldr	r2, [r3, #12]
 8000f1a:	2a00      	cmp	r2, #0
 8000f1c:	d1d9      	bne.n	8000ed2 <lamp_i2c_clock_available+0xa>
 8000f1e:	6958      	ldr	r0, [r3, #20]
 8000f20:	4243      	negs	r3, r0
 8000f22:	4158      	adcs	r0, r3
 8000f24:	e7d6      	b.n	8000ed4 <lamp_i2c_clock_available+0xc>
 8000f26:	46c0      	nop			@ (mov r8, r8)
 8000f28:	2000068d 	.word	0x2000068d
 8000f2c:	40021000 	.word	0x40021000
 8000f30:	40005400 	.word	0x40005400
 8000f34:	30521317 	.word	0x30521317

08000f38 <lamp_i2c_clock_init>:
 8000f38:	2300      	movs	r3, #0
 8000f3a:	b570      	push	{r4, r5, r6, lr}
 8000f3c:	4e22      	ldr	r6, [pc, #136]	@ (8000fc8 <lamp_i2c_clock_init+0x90>)
 8000f3e:	7033      	strb	r3, [r6, #0]
 8000f40:	f7ff ff34 	bl	8000dac <lamp_i2c_pins_available>
 8000f44:	2800      	cmp	r0, #0
 8000f46:	d004      	beq.n	8000f52 <lamp_i2c_clock_init+0x1a>
 8000f48:	4b20      	ldr	r3, [pc, #128]	@ (8000fcc <lamp_i2c_clock_init+0x94>)
 8000f4a:	6bda      	ldr	r2, [r3, #60]	@ 0x3c
 8000f4c:	0292      	lsls	r2, r2, #10
 8000f4e:	d401      	bmi.n	8000f54 <lamp_i2c_clock_init+0x1c>
 8000f50:	2000      	movs	r0, #0
 8000f52:	bd70      	pop	{r4, r5, r6, pc}
 8000f54:	21a0      	movs	r1, #160	@ 0xa0
 8000f56:	681a      	ldr	r2, [r3, #0]
 8000f58:	00c9      	lsls	r1, r1, #3
 8000f5a:	400a      	ands	r2, r1
 8000f5c:	428a      	cmp	r2, r1
 8000f5e:	d1f7      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f60:	21c0      	movs	r1, #192	@ 0xc0
 8000f62:	4a1b      	ldr	r2, [pc, #108]	@ (8000fd0 <lamp_i2c_clock_init+0x98>)
 8000f64:	6912      	ldr	r2, [r2, #16]
 8000f66:	400a      	ands	r2, r1
 8000f68:	428a      	cmp	r2, r1
 8000f6a:	d1f1      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f6c:	4c19      	ldr	r4, [pc, #100]	@ (8000fd4 <lamp_i2c_clock_init+0x9c>)
 8000f6e:	6822      	ldr	r2, [r4, #0]
 8000f70:	2a00      	cmp	r2, #0
 8000f72:	d1ed      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f74:	6862      	ldr	r2, [r4, #4]
 8000f76:	2a00      	cmp	r2, #0
 8000f78:	d1ea      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f7a:	68a2      	ldr	r2, [r4, #8]
 8000f7c:	2a00      	cmp	r2, #0
 8000f7e:	d1e7      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f80:	68e2      	ldr	r2, [r4, #12]
 8000f82:	2a00      	cmp	r2, #0
 8000f84:	d1e4      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f86:	6962      	ldr	r2, [r4, #20]
 8000f88:	2a00      	cmp	r2, #0
 8000f8a:	d1e1      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f8c:	69a1      	ldr	r1, [r4, #24]
 8000f8e:	4a12      	ldr	r2, [pc, #72]	@ (8000fd8 <lamp_i2c_clock_init+0xa0>)
 8000f90:	4211      	tst	r1, r2
 8000f92:	d1dd      	bne.n	8000f50 <lamp_i2c_clock_init+0x18>
 8000f94:	6d59      	ldr	r1, [r3, #84]	@ 0x54
 8000f96:	4a11      	ldr	r2, [pc, #68]	@ (8000fdc <lamp_i2c_clock_init+0xa4>)
 8000f98:	4011      	ands	r1, r2
 8000f9a:	2280      	movs	r2, #128	@ 0x80
 8000f9c:	0192      	lsls	r2, r2, #6
 8000f9e:	430a      	orrs	r2, r1
 8000fa0:	655a      	str	r2, [r3, #84]	@ 0x54
 8000fa2:	4b0f      	ldr	r3, [pc, #60]	@ (8000fe0 <lamp_i2c_clock_init+0xa8>)
 8000fa4:	6123      	str	r3, [r4, #16]
 8000fa6:	f3bf 8f4f 	dsb	sy
 8000faa:	2501      	movs	r5, #1
 8000fac:	6025      	str	r5, [r4, #0]
 8000fae:	f3bf 8f4f 	dsb	sy
 8000fb2:	7035      	strb	r5, [r6, #0]
 8000fb4:	f7ff ff88 	bl	8000ec8 <lamp_i2c_clock_available>
 8000fb8:	2800      	cmp	r0, #0
 8000fba:	d1ca      	bne.n	8000f52 <lamp_i2c_clock_init+0x1a>
 8000fbc:	6823      	ldr	r3, [r4, #0]
 8000fbe:	7030      	strb	r0, [r6, #0]
 8000fc0:	43ab      	bics	r3, r5
 8000fc2:	6023      	str	r3, [r4, #0]
 8000fc4:	e7c5      	b.n	8000f52 <lamp_i2c_clock_init+0x1a>
 8000fc6:	46c0      	nop			@ (mov r8, r8)
 8000fc8:	2000068d 	.word	0x2000068d
 8000fcc:	40021000 	.word	0x40021000
 8000fd0:	50000400 	.word	0x50000400
 8000fd4:	40005400 	.word	0x40005400
 8000fd8:	000097f4 	.word	0x000097f4
 8000fdc:	ffffcfff 	.word	0xffffcfff
 8000fe0:	30521317 	.word	0x30521317

08000fe4 <lamp_i2c_owner_acquire>:
 8000fe4:	2800      	cmp	r0, #0
 8000fe6:	d101      	bne.n	8000fec <lamp_i2c_owner_acquire+0x8>
 8000fe8:	2000      	movs	r0, #0
 8000fea:	4770      	bx	lr
 8000fec:	4b03      	ldr	r3, [pc, #12]	@ (8000ffc <lamp_i2c_owner_acquire+0x18>)
 8000fee:	681a      	ldr	r2, [r3, #0]
 8000ff0:	2a00      	cmp	r2, #0
 8000ff2:	d1f9      	bne.n	8000fe8 <lamp_i2c_owner_acquire+0x4>
 8000ff4:	6018      	str	r0, [r3, #0]
 8000ff6:	2001      	movs	r0, #1
 8000ff8:	e7f7      	b.n	8000fea <lamp_i2c_owner_acquire+0x6>
 8000ffa:	46c0      	nop			@ (mov r8, r8)
 8000ffc:	20000690 	.word	0x20000690

08001000 <lamp_i2c_owner_is>:
 8001000:	1e02      	subs	r2, r0, #0
 8001002:	d005      	beq.n	8001010 <lamp_i2c_owner_is+0x10>
 8001004:	4b03      	ldr	r3, [pc, #12]	@ (8001014 <lamp_i2c_owner_is+0x14>)
 8001006:	6818      	ldr	r0, [r3, #0]
 8001008:	1a80      	subs	r0, r0, r2
 800100a:	4242      	negs	r2, r0
 800100c:	4150      	adcs	r0, r2
 800100e:	b2c0      	uxtb	r0, r0
 8001010:	4770      	bx	lr
 8001012:	46c0      	nop			@ (mov r8, r8)
 8001014:	20000690 	.word	0x20000690

08001018 <lamp_i2c_owner_release>:
 8001018:	b510      	push	{r4, lr}
 800101a:	f7ff fff1 	bl	8001000 <lamp_i2c_owner_is>
 800101e:	2800      	cmp	r0, #0
 8001020:	d002      	beq.n	8001028 <lamp_i2c_owner_release+0x10>
 8001022:	2200      	movs	r2, #0
 8001024:	4b01      	ldr	r3, [pc, #4]	@ (800102c <lamp_i2c_owner_release+0x14>)
 8001026:	601a      	str	r2, [r3, #0]
 8001028:	bd10      	pop	{r4, pc}
 800102a:	46c0      	nop			@ (mov r8, r8)
 800102c:	20000690 	.word	0x20000690

08001030 <lamp_i2c_owner_idle>:
 8001030:	4b02      	ldr	r3, [pc, #8]	@ (800103c <lamp_i2c_owner_idle+0xc>)
 8001032:	6818      	ldr	r0, [r3, #0]
 8001034:	4243      	negs	r3, r0
 8001036:	4158      	adcs	r0, r3
 8001038:	b2c0      	uxtb	r0, r0
 800103a:	4770      	bx	lr
 800103c:	20000690 	.word	0x20000690

08001040 <fail>:
 8001040:	2304      	movs	r3, #4
 8001042:	b570      	push	{r4, r5, r6, lr}
 8001044:	7003      	strb	r3, [r0, #0]
 8001046:	0003      	movs	r3, r0
 8001048:	2200      	movs	r2, #0
 800104a:	332f      	adds	r3, #47	@ 0x2f
 800104c:	701a      	strb	r2, [r3, #0]
 800104e:	6101      	str	r1, [r0, #16]
 8001050:	0004      	movs	r4, r0
 8001052:	000d      	movs	r5, r1
 8001054:	f7ff ffd4 	bl	8001000 <lamp_i2c_owner_is>
 8001058:	2800      	cmp	r0, #0
 800105a:	d013      	beq.n	8001084 <fail+0x44>
 800105c:	4b0a      	ldr	r3, [pc, #40]	@ (8001088 <fail+0x48>)
 800105e:	05ad      	lsls	r5, r5, #22
 8001060:	d407      	bmi.n	8001072 <fail+0x32>
 8001062:	699a      	ldr	r2, [r3, #24]
 8001064:	0412      	lsls	r2, r2, #16
 8001066:	d504      	bpl.n	8001072 <fail+0x32>
 8001068:	2280      	movs	r2, #128	@ 0x80
 800106a:	6859      	ldr	r1, [r3, #4]
 800106c:	01d2      	lsls	r2, r2, #7
 800106e:	430a      	orrs	r2, r1
 8001070:	605a      	str	r2, [r3, #4]
 8001072:	2101      	movs	r1, #1
 8001074:	681a      	ldr	r2, [r3, #0]
 8001076:	0020      	movs	r0, r4
 8001078:	438a      	bics	r2, r1
 800107a:	601a      	str	r2, [r3, #0]
 800107c:	4a03      	ldr	r2, [pc, #12]	@ (800108c <fail+0x4c>)
 800107e:	61da      	str	r2, [r3, #28]
 8001080:	f7ff ffca 	bl	8001018 <lamp_i2c_owner_release>
 8001084:	bd70      	pop	{r4, r5, r6, pc}
 8001086:	46c0      	nop			@ (mov r8, r8)
 8001088:	40005400 	.word	0x40005400
 800108c:	00001730 	.word	0x00001730

08001090 <lamp_i2c_write_cancel>:
 8001090:	b510      	push	{r4, lr}
 8001092:	2800      	cmp	r0, #0
 8001094:	d008      	beq.n	80010a8 <lamp_i2c_write_cancel+0x18>
 8001096:	7803      	ldrb	r3, [r0, #0]
 8001098:	3b01      	subs	r3, #1
 800109a:	b2db      	uxtb	r3, r3
 800109c:	2b01      	cmp	r3, #1
 800109e:	d804      	bhi.n	80010aa <lamp_i2c_write_cancel+0x1a>
 80010a0:	4b04      	ldr	r3, [pc, #16]	@ (80010b4 <lamp_i2c_write_cancel+0x24>)
 80010a2:	6999      	ldr	r1, [r3, #24]
 80010a4:	f7ff ffcc 	bl	8001040 <fail>
 80010a8:	bd10      	pop	{r4, pc}
 80010aa:	2300      	movs	r3, #0
 80010ac:	302f      	adds	r0, #47	@ 0x2f
 80010ae:	7003      	strb	r3, [r0, #0]
 80010b0:	e7fa      	b.n	80010a8 <lamp_i2c_write_cancel+0x18>
 80010b2:	46c0      	nop			@ (mov r8, r8)
 80010b4:	40005400 	.word	0x40005400

080010b8 <lamp_i2c_write_reset>:
 80010b8:	b510      	push	{r4, lr}
 80010ba:	1e04      	subs	r4, r0, #0
 80010bc:	d00b      	beq.n	80010d6 <lamp_i2c_write_reset+0x1e>
 80010be:	f7ff ff9f 	bl	8001000 <lamp_i2c_owner_is>
 80010c2:	2800      	cmp	r0, #0
 80010c4:	d002      	beq.n	80010cc <lamp_i2c_write_reset+0x14>
 80010c6:	0020      	movs	r0, r4
 80010c8:	f7ff ffe2 	bl	8001090 <lamp_i2c_write_cancel>
 80010cc:	2230      	movs	r2, #48	@ 0x30
 80010ce:	2100      	movs	r1, #0
 80010d0:	0020      	movs	r0, r4
 80010d2:	f7ff f876 	bl	80001c2 <memset>
 80010d6:	bd10      	pop	{r4, pc}

080010d8 <lamp_i2c_write_start>:
 80010d8:	b5f0      	push	{r4, r5, r6, r7, lr}
 80010da:	b085      	sub	sp, #20
 80010dc:	0005      	movs	r5, r0
 80010de:	000c      	movs	r4, r1
 80010e0:	9202      	str	r2, [sp, #8]
 80010e2:	9301      	str	r3, [sp, #4]
 80010e4:	2800      	cmp	r0, #0
 80010e6:	d103      	bne.n	80010f0 <lamp_i2c_write_start+0x18>
 80010e8:	2600      	movs	r6, #0
 80010ea:	0030      	movs	r0, r6
 80010ec:	b005      	add	sp, #20
 80010ee:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80010f0:	9b02      	ldr	r3, [sp, #8]
 80010f2:	2b00      	cmp	r3, #0
 80010f4:	d0f8      	beq.n	80010e8 <lamp_i2c_write_start+0x10>
 80010f6:	7803      	ldrb	r3, [r0, #0]
 80010f8:	2b00      	cmp	r3, #0
 80010fa:	d001      	beq.n	8001100 <lamp_i2c_write_start+0x28>
 80010fc:	2b03      	cmp	r3, #3
 80010fe:	d1f3      	bne.n	80010e8 <lamp_i2c_write_start+0x10>
 8001100:	9b01      	ldr	r3, [sp, #4]
 8001102:	2b02      	cmp	r3, #2
 8001104:	d10a      	bne.n	800111c <lamp_i2c_write_start+0x44>
 8001106:	9b02      	ldr	r3, [sp, #8]
 8001108:	781b      	ldrb	r3, [r3, #0]
 800110a:	2b39      	cmp	r3, #57	@ 0x39
 800110c:	d957      	bls.n	80011be <lamp_i2c_write_start+0xe6>
 800110e:	2b3f      	cmp	r3, #63	@ 0x3f
 8001110:	d055      	beq.n	80011be <lamp_i2c_write_start+0xe6>
 8001112:	2c15      	cmp	r4, #21
 8001114:	d111      	bne.n	800113a <lamp_i2c_write_start+0x62>
 8001116:	2b40      	cmp	r3, #64	@ 0x40
 8001118:	d1e6      	bne.n	80010e8 <lamp_i2c_write_start+0x10>
 800111a:	e018      	b.n	800114e <lamp_i2c_write_start+0x76>
 800111c:	9b01      	ldr	r3, [sp, #4]
 800111e:	2b19      	cmp	r3, #25
 8001120:	d142      	bne.n	80011a8 <lamp_i2c_write_start+0xd0>
 8001122:	9b02      	ldr	r3, [sp, #8]
 8001124:	781b      	ldrb	r3, [r3, #0]
 8001126:	2b8a      	cmp	r3, #138	@ 0x8a
 8001128:	d045      	beq.n	80011b6 <lamp_i2c_write_start+0xde>
 800112a:	3ba2      	subs	r3, #162	@ 0xa2
 800112c:	425a      	negs	r2, r3
 800112e:	4153      	adcs	r3, r2
 8001130:	2c15      	cmp	r4, #21
 8001132:	d13c      	bne.n	80011ae <lamp_i2c_write_start+0xd6>
 8001134:	2b00      	cmp	r3, #0
 8001136:	d10a      	bne.n	800114e <lamp_i2c_write_start+0x76>
 8001138:	e7d6      	b.n	80010e8 <lamp_i2c_write_start+0x10>
 800113a:	3b40      	subs	r3, #64	@ 0x40
 800113c:	425a      	negs	r2, r3
 800113e:	415a      	adcs	r2, r3
 8001140:	2300      	movs	r3, #0
 8001142:	2c19      	cmp	r4, #25
 8001144:	d001      	beq.n	800114a <lamp_i2c_write_start+0x72>
 8001146:	2c65      	cmp	r4, #101	@ 0x65
 8001148:	d1ce      	bne.n	80010e8 <lamp_i2c_write_start+0x10>
 800114a:	2a00      	cmp	r2, #0
 800114c:	d0f2      	beq.n	8001134 <lamp_i2c_write_start+0x5c>
 800114e:	f7ff febb 	bl	8000ec8 <lamp_i2c_clock_available>
 8001152:	1e06      	subs	r6, r0, #0
 8001154:	d0c9      	beq.n	80010ea <lamp_i2c_write_start+0x12>
 8001156:	4f1d      	ldr	r7, [pc, #116]	@ (80011cc <lamp_i2c_write_start+0xf4>)
 8001158:	4b1d      	ldr	r3, [pc, #116]	@ (80011d0 <lamp_i2c_write_start+0xf8>)
 800115a:	69ba      	ldr	r2, [r7, #24]
 800115c:	0011      	movs	r1, r2
 800115e:	4019      	ands	r1, r3
 8001160:	9103      	str	r1, [sp, #12]
 8001162:	421a      	tst	r2, r3
 8001164:	d1c0      	bne.n	80010e8 <lamp_i2c_write_start+0x10>
 8001166:	0028      	movs	r0, r5
 8001168:	f7ff ff3c 	bl	8000fe4 <lamp_i2c_owner_acquire>
 800116c:	1e06      	subs	r6, r0, #0
 800116e:	d0bc      	beq.n	80010ea <lamp_i2c_write_start+0x12>
 8001170:	0028      	movs	r0, r5
 8001172:	9a01      	ldr	r2, [sp, #4]
 8001174:	9902      	ldr	r1, [sp, #8]
 8001176:	3014      	adds	r0, #20
 8001178:	f7ff f81a 	bl	80001b0 <memcpy>
 800117c:	002b      	movs	r3, r5
 800117e:	9a01      	ldr	r2, [sp, #4]
 8001180:	332d      	adds	r3, #45	@ 0x2d
 8001182:	701a      	strb	r2, [r3, #0]
 8001184:	9b0a      	ldr	r3, [sp, #40]	@ 0x28
 8001186:	9a01      	ldr	r2, [sp, #4]
 8001188:	60ab      	str	r3, [r5, #8]
 800118a:	606b      	str	r3, [r5, #4]
 800118c:	9b03      	ldr	r3, [sp, #12]
 800118e:	0412      	lsls	r2, r2, #16
 8001190:	85eb      	strh	r3, [r5, #46]	@ 0x2e
 8001192:	612b      	str	r3, [r5, #16]
 8001194:	2301      	movs	r3, #1
 8001196:	702b      	strb	r3, [r5, #0]
 8001198:	4b0e      	ldr	r3, [pc, #56]	@ (80011d4 <lamp_i2c_write_start+0xfc>)
 800119a:	61fb      	str	r3, [r7, #28]
 800119c:	0063      	lsls	r3, r4, #1
 800119e:	4c0e      	ldr	r4, [pc, #56]	@ (80011d8 <lamp_i2c_write_start+0x100>)
 80011a0:	4313      	orrs	r3, r2
 80011a2:	431c      	orrs	r4, r3
 80011a4:	607c      	str	r4, [r7, #4]
 80011a6:	e7a0      	b.n	80010ea <lamp_i2c_write_start+0x12>
 80011a8:	2300      	movs	r3, #0
 80011aa:	2c15      	cmp	r4, #21
 80011ac:	d09c      	beq.n	80010e8 <lamp_i2c_write_start+0x10>
 80011ae:	2200      	movs	r2, #0
 80011b0:	2c19      	cmp	r4, #25
 80011b2:	d1c8      	bne.n	8001146 <lamp_i2c_write_start+0x6e>
 80011b4:	e7be      	b.n	8001134 <lamp_i2c_write_start+0x5c>
 80011b6:	2301      	movs	r3, #1
 80011b8:	2c15      	cmp	r4, #21
 80011ba:	d1f8      	bne.n	80011ae <lamp_i2c_write_start+0xd6>
 80011bc:	e7c7      	b.n	800114e <lamp_i2c_write_start+0x76>
 80011be:	2c15      	cmp	r4, #21
 80011c0:	d0c5      	beq.n	800114e <lamp_i2c_write_start+0x76>
 80011c2:	2c19      	cmp	r4, #25
 80011c4:	d0c3      	beq.n	800114e <lamp_i2c_write_start+0x76>
 80011c6:	2201      	movs	r2, #1
 80011c8:	2300      	movs	r3, #0
 80011ca:	e7bc      	b.n	8001146 <lamp_i2c_write_start+0x6e>
 80011cc:	40005400 	.word	0x40005400
 80011d0:	000097f4 	.word	0x000097f4
 80011d4:	00001730 	.word	0x00001730
 80011d8:	02002000 	.word	0x02002000

080011dc <lamp_i2c_write_poll>:
 80011dc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 80011de:	0004      	movs	r4, r0
 80011e0:	000e      	movs	r6, r1
 80011e2:	2800      	cmp	r0, #0
 80011e4:	d03a      	beq.n	800125c <lamp_i2c_write_poll+0x80>
 80011e6:	7803      	ldrb	r3, [r0, #0]
 80011e8:	3b01      	subs	r3, #1
 80011ea:	b2db      	uxtb	r3, r3
 80011ec:	2b01      	cmp	r3, #1
 80011ee:	d835      	bhi.n	800125c <lamp_i2c_write_poll+0x80>
 80011f0:	4f27      	ldr	r7, [pc, #156]	@ (8001290 <lamp_i2c_write_poll+0xb4>)
 80011f2:	6843      	ldr	r3, [r0, #4]
 80011f4:	69bd      	ldr	r5, [r7, #24]
 80011f6:	1acb      	subs	r3, r1, r3
 80011f8:	2b05      	cmp	r3, #5
 80011fa:	d813      	bhi.n	8001224 <lamp_i2c_write_poll+0x48>
 80011fc:	6883      	ldr	r3, [r0, #8]
 80011fe:	1acb      	subs	r3, r1, r3
 8001200:	2b05      	cmp	r3, #5
 8001202:	d80f      	bhi.n	8001224 <lamp_i2c_write_poll+0x48>
 8001204:	f7ff fe60 	bl	8000ec8 <lamp_i2c_clock_available>
 8001208:	2800      	cmp	r0, #0
 800120a:	d00b      	beq.n	8001224 <lamp_i2c_write_poll+0x48>
 800120c:	0020      	movs	r0, r4
 800120e:	f7ff fef7 	bl	8001000 <lamp_i2c_owner_is>
 8001212:	2800      	cmp	r0, #0
 8001214:	d006      	beq.n	8001224 <lamp_i2c_write_poll+0x48>
 8001216:	4b1f      	ldr	r3, [pc, #124]	@ (8001294 <lamp_i2c_write_poll+0xb8>)
 8001218:	421d      	tst	r5, r3
 800121a:	d103      	bne.n	8001224 <lamp_i2c_write_poll+0x48>
 800121c:	23c4      	movs	r3, #196	@ 0xc4
 800121e:	60a6      	str	r6, [r4, #8]
 8001220:	421d      	tst	r5, r3
 8001222:	d004      	beq.n	800122e <lamp_i2c_write_poll+0x52>
 8001224:	0029      	movs	r1, r5
 8001226:	0020      	movs	r0, r4
 8001228:	f7ff ff0a 	bl	8001040 <fail>
 800122c:	e016      	b.n	800125c <lamp_i2c_write_poll+0x80>
 800122e:	7823      	ldrb	r3, [r4, #0]
 8001230:	2b01      	cmp	r3, #1
 8001232:	d114      	bne.n	800125e <lamp_i2c_write_poll+0x82>
 8001234:	06ab      	lsls	r3, r5, #26
 8001236:	d4f5      	bmi.n	8001224 <lamp_i2c_write_poll+0x48>
 8001238:	2102      	movs	r1, #2
 800123a:	420d      	tst	r5, r1
 800123c:	d00e      	beq.n	800125c <lamp_i2c_write_poll+0x80>
 800123e:	0020      	movs	r0, r4
 8001240:	302e      	adds	r0, #46	@ 0x2e
 8001242:	7802      	ldrb	r2, [r0, #0]
 8001244:	1c53      	adds	r3, r2, #1
 8001246:	b2db      	uxtb	r3, r3
 8001248:	7003      	strb	r3, [r0, #0]
 800124a:	18a2      	adds	r2, r4, r2
 800124c:	7d12      	ldrb	r2, [r2, #20]
 800124e:	62ba      	str	r2, [r7, #40]	@ 0x28
 8001250:	0022      	movs	r2, r4
 8001252:	322d      	adds	r2, #45	@ 0x2d
 8001254:	7812      	ldrb	r2, [r2, #0]
 8001256:	429a      	cmp	r2, r3
 8001258:	d100      	bne.n	800125c <lamp_i2c_write_poll+0x80>
 800125a:	7021      	strb	r1, [r4, #0]
 800125c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 800125e:	07ab      	lsls	r3, r5, #30
 8001260:	d4e0      	bmi.n	8001224 <lamp_i2c_write_poll+0x48>
 8001262:	2320      	movs	r3, #32
 8001264:	421d      	tst	r5, r3
 8001266:	d0f9      	beq.n	800125c <lamp_i2c_write_poll+0x80>
 8001268:	2280      	movs	r2, #128	@ 0x80
 800126a:	0029      	movs	r1, r5
 800126c:	0212      	lsls	r2, r2, #8
 800126e:	4011      	ands	r1, r2
 8001270:	4215      	tst	r5, r2
 8001272:	d1f3      	bne.n	800125c <lamp_i2c_write_poll+0x80>
 8001274:	61fb      	str	r3, [r7, #28]
 8001276:	0023      	movs	r3, r4
 8001278:	2201      	movs	r2, #1
 800127a:	332f      	adds	r3, #47	@ 0x2f
 800127c:	6079      	str	r1, [r7, #4]
 800127e:	60e6      	str	r6, [r4, #12]
 8001280:	701a      	strb	r2, [r3, #0]
 8001282:	2303      	movs	r3, #3
 8001284:	0020      	movs	r0, r4
 8001286:	7023      	strb	r3, [r4, #0]
 8001288:	f7ff fec6 	bl	8001018 <lamp_i2c_owner_release>
 800128c:	e7e6      	b.n	800125c <lamp_i2c_write_poll+0x80>
 800128e:	46c0      	nop			@ (mov r8, r8)
 8001290:	40005400 	.word	0x40005400
 8001294:	00001710 	.word	0x00001710

08001298 <lamp_i2c_write_done>:
 8001298:	b510      	push	{r4, lr}
 800129a:	2800      	cmp	r0, #0
 800129c:	d103      	bne.n	80012a6 <lamp_i2c_write_done+0xe>
 800129e:	2000      	movs	r0, #0
 80012a0:	2301      	movs	r3, #1
 80012a2:	4018      	ands	r0, r3
 80012a4:	bd10      	pop	{r4, pc}
 80012a6:	7803      	ldrb	r3, [r0, #0]
 80012a8:	2b03      	cmp	r3, #3
 80012aa:	d1f8      	bne.n	800129e <lamp_i2c_write_done+0x6>
 80012ac:	0003      	movs	r3, r0
 80012ae:	332f      	adds	r3, #47	@ 0x2f
 80012b0:	781b      	ldrb	r3, [r3, #0]
 80012b2:	2b00      	cmp	r3, #0
 80012b4:	d0f3      	beq.n	800129e <lamp_i2c_write_done+0x6>
 80012b6:	6843      	ldr	r3, [r0, #4]
 80012b8:	1acb      	subs	r3, r1, r3
 80012ba:	2b14      	cmp	r3, #20
 80012bc:	d8ef      	bhi.n	800129e <lamp_i2c_write_done+0x6>
 80012be:	6883      	ldr	r3, [r0, #8]
 80012c0:	1ac9      	subs	r1, r1, r3
 80012c2:	2905      	cmp	r1, #5
 80012c4:	d8eb      	bhi.n	800129e <lamp_i2c_write_done+0x6>
 80012c6:	f7ff fdff 	bl	8000ec8 <lamp_i2c_clock_available>
 80012ca:	e7e9      	b.n	80012a0 <lamp_i2c_write_done+0x8>

080012cc <output_pin>:
 80012cc:	6803      	ldr	r3, [r0, #0]
 80012ce:	b510      	push	{r4, lr}
 80012d0:	004c      	lsls	r4, r1, #1
 80012d2:	40e3      	lsrs	r3, r4
 80012d4:	2403      	movs	r4, #3
 80012d6:	4023      	ands	r3, r4
 80012d8:	2b01      	cmp	r3, #1
 80012da:	d001      	beq.n	80012e0 <output_pin+0x14>
 80012dc:	2000      	movs	r0, #0
 80012de:	bd10      	pop	{r4, pc}
 80012e0:	408b      	lsls	r3, r1
 80012e2:	001c      	movs	r4, r3
 80012e4:	6841      	ldr	r1, [r0, #4]
 80012e6:	400c      	ands	r4, r1
 80012e8:	420b      	tst	r3, r1
 80012ea:	d1f7      	bne.n	80012dc <output_pin+0x10>
 80012ec:	6941      	ldr	r1, [r0, #20]
 80012ee:	4019      	ands	r1, r3
 80012f0:	2a00      	cmp	r2, #0
 80012f2:	d000      	beq.n	80012f6 <output_pin+0x2a>
 80012f4:	001c      	movs	r4, r3
 80012f6:	42a1      	cmp	r1, r4
 80012f8:	d1f0      	bne.n	80012dc <output_pin+0x10>
 80012fa:	6902      	ldr	r2, [r0, #16]
 80012fc:	4013      	ands	r3, r2
 80012fe:	1a58      	subs	r0, r3, r1
 8001300:	4243      	negs	r3, r0
 8001302:	4158      	adcs	r0, r3
 8001304:	e7eb      	b.n	80012de <output_pin+0x12>

08001306 <outputs_blank>:
 8001306:	4b1e      	ldr	r3, [pc, #120]	@ (8001380 <outputs_blank+0x7a>)
 8001308:	b570      	push	{r4, r5, r6, lr}
 800130a:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 800130c:	43d2      	mvns	r2, r2
 800130e:	0792      	lsls	r2, r2, #30
 8001310:	d003      	beq.n	800131a <outputs_blank+0x14>
 8001312:	2000      	movs	r0, #0
 8001314:	2301      	movs	r3, #1
 8001316:	4018      	ands	r0, r3
 8001318:	bd70      	pop	{r4, r5, r6, pc}
 800131a:	2401      	movs	r4, #1
 800131c:	6c1a      	ldr	r2, [r3, #64]	@ 0x40
 800131e:	4222      	tst	r2, r4
 8001320:	d0f7      	beq.n	8001312 <outputs_blank+0xc>
 8001322:	4a18      	ldr	r2, [pc, #96]	@ (8001384 <outputs_blank+0x7e>)
 8001324:	6811      	ldr	r1, [r2, #0]
 8001326:	2218      	movs	r2, #24
 8001328:	4211      	tst	r1, r2
 800132a:	d1f2      	bne.n	8001312 <outputs_blank+0xc>
 800132c:	6dda      	ldr	r2, [r3, #92]	@ 0x5c
 800132e:	4222      	tst	r2, r4
 8001330:	d1ef      	bne.n	8001312 <outputs_blank+0xc>
 8001332:	2104      	movs	r1, #4
 8001334:	6b5b      	ldr	r3, [r3, #52]	@ 0x34
 8001336:	420b      	tst	r3, r1
 8001338:	d0eb      	beq.n	8001312 <outputs_blank+0xc>
 800133a:	20c0      	movs	r0, #192	@ 0xc0
 800133c:	4a12      	ldr	r2, [pc, #72]	@ (8001388 <outputs_blank+0x82>)
 800133e:	0580      	lsls	r0, r0, #22
 8001340:	6813      	ldr	r3, [r2, #0]
 8001342:	4003      	ands	r3, r0
 8001344:	4283      	cmp	r3, r0
 8001346:	d1e4      	bne.n	8001312 <outputs_blank+0xc>
 8001348:	68d2      	ldr	r2, [r2, #12]
 800134a:	0015      	movs	r5, r2
 800134c:	401d      	ands	r5, r3
 800134e:	421a      	tst	r2, r3
 8001350:	d1df      	bne.n	8001312 <outputs_blank+0xc>
 8001352:	20a0      	movs	r0, #160	@ 0xa0
 8001354:	002a      	movs	r2, r5
 8001356:	05c0      	lsls	r0, r0, #23
 8001358:	f7ff ffb8 	bl	80012cc <output_pin>
 800135c:	2800      	cmp	r0, #0
 800135e:	d0d8      	beq.n	8001312 <outputs_blank+0xc>
 8001360:	20a0      	movs	r0, #160	@ 0xa0
 8001362:	0022      	movs	r2, r4
 8001364:	2107      	movs	r1, #7
 8001366:	05c0      	lsls	r0, r0, #23
 8001368:	f7ff ffb0 	bl	80012cc <output_pin>
 800136c:	2800      	cmp	r0, #0
 800136e:	d0d0      	beq.n	8001312 <outputs_blank+0xc>
 8001370:	20a0      	movs	r0, #160	@ 0xa0
 8001372:	002a      	movs	r2, r5
 8001374:	210b      	movs	r1, #11
 8001376:	05c0      	lsls	r0, r0, #23
 8001378:	f7ff ffa8 	bl	80012cc <output_pin>
 800137c:	e7ca      	b.n	8001314 <outputs_blank+0xe>
 800137e:	46c0      	nop			@ (mov r8, r8)
 8001380:	40021000 	.word	0x40021000
 8001384:	40010000 	.word	0x40010000
 8001388:	50000800 	.word	0x50000800

0800138c <fault>:
 800138c:	b510      	push	{r4, lr}
 800138e:	f000 fc5a 	bl	8001c46 <lamp_output_pins_request_off>
 8001392:	4805      	ldr	r0, [pc, #20]	@ (80013a8 <fault+0x1c>)
 8001394:	f000 faef 	bl	8001976 <lamp_frame_stage_abort>
 8001398:	f000 f958 	bl	800164c <lamp_dark_init_abort>
 800139c:	f7ff fa12 	bl	80007c4 <lamp_driver_diagnostics_abort>
 80013a0:	2204      	movs	r2, #4
 80013a2:	4b02      	ldr	r3, [pc, #8]	@ (80013ac <fault+0x20>)
 80013a4:	701a      	strb	r2, [r3, #0]
 80013a6:	bd10      	pop	{r4, pc}
 80013a8:	200006b0 	.word	0x200006b0
 80013ac:	20000698 	.word	0x20000698

080013b0 <lamp_diagnostic_runtime_init>:
 80013b0:	4b0e      	ldr	r3, [pc, #56]	@ (80013ec <lamp_diagnostic_runtime_init+0x3c>)
 80013b2:	b510      	push	{r4, lr}
 80013b4:	785c      	ldrb	r4, [r3, #1]
 80013b6:	2c00      	cmp	r4, #0
 80013b8:	d002      	beq.n	80013c0 <lamp_diagnostic_runtime_init+0x10>
 80013ba:	f7ff ffe7 	bl	800138c <fault>
 80013be:	bd10      	pop	{r4, pc}
 80013c0:	2201      	movs	r2, #1
 80013c2:	6058      	str	r0, [r3, #4]
 80013c4:	705a      	strb	r2, [r3, #1]
 80013c6:	6098      	str	r0, [r3, #8]
 80013c8:	701a      	strb	r2, [r3, #0]
 80013ca:	f7ff ff9c 	bl	8001306 <outputs_blank>
 80013ce:	42a0      	cmp	r0, r4
 80013d0:	d0f3      	beq.n	80013ba <lamp_diagnostic_runtime_init+0xa>
 80013d2:	0022      	movs	r2, r4
 80013d4:	2109      	movs	r1, #9
 80013d6:	4806      	ldr	r0, [pc, #24]	@ (80013f0 <lamp_diagnostic_runtime_init+0x40>)
 80013d8:	f7ff ff78 	bl	80012cc <output_pin>
 80013dc:	42a0      	cmp	r0, r4
 80013de:	d0ec      	beq.n	80013ba <lamp_diagnostic_runtime_init+0xa>
 80013e0:	f7ff fd72 	bl	8000ec8 <lamp_i2c_clock_available>
 80013e4:	42a0      	cmp	r0, r4
 80013e6:	d0e8      	beq.n	80013ba <lamp_diagnostic_runtime_init+0xa>
 80013e8:	e7e9      	b.n	80013be <lamp_diagnostic_runtime_init+0xe>
 80013ea:	46c0      	nop			@ (mov r8, r8)
 80013ec:	20000698 	.word	0x20000698
 80013f0:	50000400 	.word	0x50000400

080013f4 <lamp_diagnostic_runtime_poll>:
 80013f4:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
 80013f6:	4c42      	ldr	r4, [pc, #264]	@ (8001500 <lamp_diagnostic_runtime_poll+0x10c>)
 80013f8:	0005      	movs	r5, r0
 80013fa:	7863      	ldrb	r3, [r4, #1]
 80013fc:	2b00      	cmp	r3, #0
 80013fe:	d004      	beq.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 8001400:	7823      	ldrb	r3, [r4, #0]
 8001402:	2b04      	cmp	r3, #4
 8001404:	d102      	bne.n	800140c <lamp_diagnostic_runtime_poll+0x18>
 8001406:	f000 fc1e 	bl	8001c46 <lamp_output_pins_request_off>
 800140a:	bd7f      	pop	{r0, r1, r2, r3, r4, r5, r6, pc}
 800140c:	6863      	ldr	r3, [r4, #4]
 800140e:	1ac3      	subs	r3, r0, r3
 8001410:	2b05      	cmp	r3, #5
 8001412:	d813      	bhi.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 8001414:	f7ff ff77 	bl	8001306 <outputs_blank>
 8001418:	2800      	cmp	r0, #0
 800141a:	d00f      	beq.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 800141c:	f7ff fd54 	bl	8000ec8 <lamp_i2c_clock_available>
 8001420:	2800      	cmp	r0, #0
 8001422:	d00b      	beq.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 8001424:	7826      	ldrb	r6, [r4, #0]
 8001426:	2109      	movs	r1, #9
 8001428:	3e01      	subs	r6, #1
 800142a:	0032      	movs	r2, r6
 800142c:	1e53      	subs	r3, r2, #1
 800142e:	419a      	sbcs	r2, r3
 8001430:	4834      	ldr	r0, [pc, #208]	@ (8001504 <lamp_diagnostic_runtime_poll+0x110>)
 8001432:	b2d2      	uxtb	r2, r2
 8001434:	f7ff ff4a 	bl	80012cc <output_pin>
 8001438:	2800      	cmp	r0, #0
 800143a:	d102      	bne.n	8001442 <lamp_diagnostic_runtime_poll+0x4e>
 800143c:	f7ff ffa6 	bl	800138c <fault>
 8001440:	e7e3      	b.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 8001442:	6065      	str	r5, [r4, #4]
 8001444:	2e05      	cmp	r6, #5
 8001446:	d8f9      	bhi.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 8001448:	0030      	movs	r0, r6
 800144a:	f004 f93d 	bl	80056c8 <__gnu_thumb1_case_sqi>
 800144e:	1103      	.short	0x1103
 8001450:	3e20f736 	.word	0x3e20f736
 8001454:	68a3      	ldr	r3, [r4, #8]
 8001456:	1aeb      	subs	r3, r5, r3
 8001458:	2b02      	cmp	r3, #2
 800145a:	d9d6      	bls.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 800145c:	2280      	movs	r2, #128	@ 0x80
 800145e:	4b29      	ldr	r3, [pc, #164]	@ (8001504 <lamp_diagnostic_runtime_poll+0x110>)
 8001460:	0092      	lsls	r2, r2, #2
 8001462:	619a      	str	r2, [r3, #24]
 8001464:	f3bf 8f4f 	dsb	sy
 8001468:	2302      	movs	r3, #2
 800146a:	60a5      	str	r5, [r4, #8]
 800146c:	7023      	strb	r3, [r4, #0]
 800146e:	e7cc      	b.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 8001470:	68a3      	ldr	r3, [r4, #8]
 8001472:	1aeb      	subs	r3, r5, r3
 8001474:	2b02      	cmp	r3, #2
 8001476:	d9c8      	bls.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 8001478:	0028      	movs	r0, r5
 800147a:	f000 f8f7 	bl	800166c <lamp_dark_init_begin>
 800147e:	2800      	cmp	r0, #0
 8001480:	d0dc      	beq.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 8001482:	2305      	movs	r3, #5
 8001484:	0028      	movs	r0, r5
 8001486:	7023      	strb	r3, [r4, #0]
 8001488:	f000 f90c 	bl	80016a4 <lamp_dark_init_poll>
 800148c:	e7bd      	b.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 800148e:	0028      	movs	r0, r5
 8001490:	f000 f908 	bl	80016a4 <lamp_dark_init_poll>
 8001494:	f000 f9ac 	bl	80017f0 <lamp_dark_init_failed>
 8001498:	1e06      	subs	r6, r0, #0
 800149a:	d1cf      	bne.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 800149c:	f000 f99e 	bl	80017dc <lamp_dark_init_done>
 80014a0:	42b0      	cmp	r0, r6
 80014a2:	d0b2      	beq.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 80014a4:	0029      	movs	r1, r5
 80014a6:	a801      	add	r0, sp, #4
 80014a8:	9601      	str	r6, [sp, #4]
 80014aa:	9602      	str	r6, [sp, #8]
 80014ac:	9603      	str	r6, [sp, #12]
 80014ae:	f7ff f941 	bl	8000734 <lamp_driver_diagnostics_init>
 80014b2:	42b0      	cmp	r0, r6
 80014b4:	d0c2      	beq.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 80014b6:	2303      	movs	r3, #3
 80014b8:	7023      	strb	r3, [r4, #0]
 80014ba:	0028      	movs	r0, r5
 80014bc:	f7ff f95c 	bl	8000778 <lamp_driver_diagnostics_poll>
 80014c0:	f7ff f97a 	bl	80007b8 <lamp_driver_diagnostics_failed>
 80014c4:	2800      	cmp	r0, #0
 80014c6:	d0a0      	beq.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 80014c8:	e7b8      	b.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 80014ca:	002b      	movs	r3, r5
 80014cc:	68e2      	ldr	r2, [r4, #12]
 80014ce:	6921      	ldr	r1, [r4, #16]
 80014d0:	480d      	ldr	r0, [pc, #52]	@ (8001508 <lamp_diagnostic_runtime_poll+0x114>)
 80014d2:	f000 faaf 	bl	8001a34 <lamp_frame_stage_poll>
 80014d6:	4b0c      	ldr	r3, [pc, #48]	@ (8001508 <lamp_diagnostic_runtime_poll+0x114>)
 80014d8:	334c      	adds	r3, #76	@ 0x4c
 80014da:	781b      	ldrb	r3, [r3, #0]
 80014dc:	2b07      	cmp	r3, #7
 80014de:	d0ad      	beq.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 80014e0:	002b      	movs	r3, r5
 80014e2:	68e2      	ldr	r2, [r4, #12]
 80014e4:	6921      	ldr	r1, [r4, #16]
 80014e6:	4808      	ldr	r0, [pc, #32]	@ (8001508 <lamp_diagnostic_runtime_poll+0x114>)
 80014e8:	f000 fb72 	bl	8001bd0 <lamp_frame_stage_done>
 80014ec:	2800      	cmp	r0, #0
 80014ee:	d100      	bne.n	80014f2 <lamp_diagnostic_runtime_poll+0xfe>
 80014f0:	e78b      	b.n	800140a <lamp_diagnostic_runtime_poll+0x16>
 80014f2:	0028      	movs	r0, r5
 80014f4:	f7ff f9a8 	bl	8000848 <lamp_driver_diagnostics_resume>
 80014f8:	2800      	cmp	r0, #0
 80014fa:	d09f      	beq.n	800143c <lamp_diagnostic_runtime_poll+0x48>
 80014fc:	2303      	movs	r3, #3
 80014fe:	e7b5      	b.n	800146c <lamp_diagnostic_runtime_poll+0x78>
 8001500:	20000698 	.word	0x20000698
 8001504:	50000400 	.word	0x50000400
 8001508:	200006b0 	.word	0x200006b0

0800150c <lamp_diagnostic_runtime_state>:
 800150c:	4b01      	ldr	r3, [pc, #4]	@ (8001514 <lamp_diagnostic_runtime_state+0x8>)
 800150e:	7818      	ldrb	r0, [r3, #0]
 8001510:	4770      	bx	lr
 8001512:	46c0      	nop			@ (mov r8, r8)
 8001514:	20000698 	.word	0x20000698

08001518 <lamp_diagnostic_runtime_needs_poll>:
 8001518:	2201      	movs	r2, #1
 800151a:	4b05      	ldr	r3, [pc, #20]	@ (8001530 <lamp_diagnostic_runtime_needs_poll+0x18>)
 800151c:	0010      	movs	r0, r2
 800151e:	781b      	ldrb	r3, [r3, #0]
 8001520:	2b03      	cmp	r3, #3
 8001522:	d004      	beq.n	800152e <lamp_diagnostic_runtime_needs_poll+0x16>
 8001524:	2000      	movs	r0, #0
 8001526:	3b05      	subs	r3, #5
 8001528:	b2db      	uxtb	r3, r3
 800152a:	429a      	cmp	r2, r3
 800152c:	4140      	adcs	r0, r0
 800152e:	4770      	bx	lr
 8001530:	20000698 	.word	0x20000698

08001534 <lamp_diagnostic_runtime_get>:
 8001534:	b570      	push	{r4, r5, r6, lr}
 8001536:	4b0f      	ldr	r3, [pc, #60]	@ (8001574 <lamp_diagnostic_runtime_get+0x40>)
 8001538:	0004      	movs	r4, r0
 800153a:	781b      	ldrb	r3, [r3, #0]
 800153c:	000d      	movs	r5, r1
 800153e:	2b03      	cmp	r3, #3
 8001540:	d003      	beq.n	800154a <lamp_diagnostic_runtime_get+0x16>
 8001542:	2000      	movs	r0, #0
 8001544:	2301      	movs	r3, #1
 8001546:	4018      	ands	r0, r3
 8001548:	bd70      	pop	{r4, r5, r6, pc}
 800154a:	f7ff fedc 	bl	8001306 <outputs_blank>
 800154e:	2800      	cmp	r0, #0
 8001550:	d0f7      	beq.n	8001542 <lamp_diagnostic_runtime_get+0xe>
 8001552:	2201      	movs	r2, #1
 8001554:	2109      	movs	r1, #9
 8001556:	4808      	ldr	r0, [pc, #32]	@ (8001578 <lamp_diagnostic_runtime_get+0x44>)
 8001558:	f7ff feb8 	bl	80012cc <output_pin>
 800155c:	2800      	cmp	r0, #0
 800155e:	d0f0      	beq.n	8001542 <lamp_diagnostic_runtime_get+0xe>
 8001560:	f7ff fcb2 	bl	8000ec8 <lamp_i2c_clock_available>
 8001564:	2800      	cmp	r0, #0
 8001566:	d0ec      	beq.n	8001542 <lamp_diagnostic_runtime_get+0xe>
 8001568:	0029      	movs	r1, r5
 800156a:	0020      	movs	r0, r4
 800156c:	f7ff f912 	bl	8000794 <lamp_driver_diagnostics_get>
 8001570:	e7e8      	b.n	8001544 <lamp_diagnostic_runtime_get+0x10>
 8001572:	46c0      	nop			@ (mov r8, r8)
 8001574:	20000698 	.word	0x20000698
 8001578:	50000400 	.word	0x50000400

0800157c <lamp_diagnostic_runtime_prepare_frame>:
 800157c:	b5f0      	push	{r4, r5, r6, r7, lr}
 800157e:	4d1d      	ldr	r5, [pc, #116]	@ (80015f4 <lamp_diagnostic_runtime_prepare_frame+0x78>)
 8001580:	b0a5      	sub	sp, #148	@ 0x94
 8001582:	782b      	ldrb	r3, [r5, #0]
 8001584:	0007      	movs	r7, r0
 8001586:	0016      	movs	r6, r2
 8001588:	2400      	movs	r4, #0
 800158a:	9101      	str	r1, [sp, #4]
 800158c:	2b03      	cmp	r3, #3
 800158e:	d127      	bne.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 8001590:	f7ff feb9 	bl	8001306 <outputs_blank>
 8001594:	1e04      	subs	r4, r0, #0
 8001596:	d023      	beq.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 8001598:	2201      	movs	r2, #1
 800159a:	2109      	movs	r1, #9
 800159c:	4816      	ldr	r0, [pc, #88]	@ (80015f8 <lamp_diagnostic_runtime_prepare_frame+0x7c>)
 800159e:	f7ff fe95 	bl	80012cc <output_pin>
 80015a2:	1e04      	subs	r4, r0, #0
 80015a4:	d01c      	beq.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 80015a6:	f7ff fc8f 	bl	8000ec8 <lamp_i2c_clock_available>
 80015aa:	1e04      	subs	r4, r0, #0
 80015ac:	d018      	beq.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 80015ae:	f7ff fd3f 	bl	8001030 <lamp_i2c_owner_idle>
 80015b2:	1e04      	subs	r4, r0, #0
 80015b4:	d014      	beq.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 80015b6:	0030      	movs	r0, r6
 80015b8:	a903      	add	r1, sp, #12
 80015ba:	f7ff f8eb 	bl	8000794 <lamp_driver_diagnostics_get>
 80015be:	1e04      	subs	r4, r0, #0
 80015c0:	d00e      	beq.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 80015c2:	0033      	movs	r3, r6
 80015c4:	0039      	movs	r1, r7
 80015c6:	480d      	ldr	r0, [pc, #52]	@ (80015fc <lamp_diagnostic_runtime_prepare_frame+0x80>)
 80015c8:	9a01      	ldr	r2, [sp, #4]
 80015ca:	f000 f9e1 	bl	8001990 <lamp_frame_stage_begin>
 80015ce:	1e04      	subs	r4, r0, #0
 80015d0:	d006      	beq.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 80015d2:	0030      	movs	r0, r6
 80015d4:	f7ff f908 	bl	80007e8 <lamp_driver_diagnostics_pause>
 80015d8:	1e04      	subs	r4, r0, #0
 80015da:	d104      	bne.n	80015e6 <lamp_diagnostic_runtime_prepare_frame+0x6a>
 80015dc:	f7ff fed6 	bl	800138c <fault>
 80015e0:	0020      	movs	r0, r4
 80015e2:	b025      	add	sp, #148	@ 0x94
 80015e4:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80015e6:	9b01      	ldr	r3, [sp, #4]
 80015e8:	612f      	str	r7, [r5, #16]
 80015ea:	60eb      	str	r3, [r5, #12]
 80015ec:	2306      	movs	r3, #6
 80015ee:	702b      	strb	r3, [r5, #0]
 80015f0:	e7f6      	b.n	80015e0 <lamp_diagnostic_runtime_prepare_frame+0x64>
 80015f2:	46c0      	nop			@ (mov r8, r8)
 80015f4:	20000698 	.word	0x20000698
 80015f8:	50000400 	.word	0x50000400
 80015fc:	200006b0 	.word	0x200006b0

08001600 <lamp_diagnostic_runtime_frame_ready>:
 8001600:	b570      	push	{r4, r5, r6, lr}
 8001602:	4c0f      	ldr	r4, [pc, #60]	@ (8001640 <lamp_diagnostic_runtime_frame_ready+0x40>)
 8001604:	0005      	movs	r5, r0
 8001606:	7823      	ldrb	r3, [r4, #0]
 8001608:	2b03      	cmp	r3, #3
 800160a:	d003      	beq.n	8001614 <lamp_diagnostic_runtime_frame_ready+0x14>
 800160c:	2000      	movs	r0, #0
 800160e:	2301      	movs	r3, #1
 8001610:	4018      	ands	r0, r3
 8001612:	bd70      	pop	{r4, r5, r6, pc}
 8001614:	f7ff fe77 	bl	8001306 <outputs_blank>
 8001618:	2800      	cmp	r0, #0
 800161a:	d0f7      	beq.n	800160c <lamp_diagnostic_runtime_frame_ready+0xc>
 800161c:	2201      	movs	r2, #1
 800161e:	2109      	movs	r1, #9
 8001620:	4808      	ldr	r0, [pc, #32]	@ (8001644 <lamp_diagnostic_runtime_frame_ready+0x44>)
 8001622:	f7ff fe53 	bl	80012cc <output_pin>
 8001626:	2800      	cmp	r0, #0
 8001628:	d0f0      	beq.n	800160c <lamp_diagnostic_runtime_frame_ready+0xc>
 800162a:	f7ff fc4d 	bl	8000ec8 <lamp_i2c_clock_available>
 800162e:	2800      	cmp	r0, #0
 8001630:	d0ec      	beq.n	800160c <lamp_diagnostic_runtime_frame_ready+0xc>
 8001632:	002b      	movs	r3, r5
 8001634:	68e2      	ldr	r2, [r4, #12]
 8001636:	6921      	ldr	r1, [r4, #16]
 8001638:	4803      	ldr	r0, [pc, #12]	@ (8001648 <lamp_diagnostic_runtime_frame_ready+0x48>)
 800163a:	f000 fac9 	bl	8001bd0 <lamp_frame_stage_done>
 800163e:	e7e6      	b.n	800160e <lamp_diagnostic_runtime_frame_ready+0xe>
 8001640:	20000698 	.word	0x20000698
 8001644:	50000400 	.word	0x50000400
 8001648:	200006b0 	.word	0x200006b0

0800164c <lamp_dark_init_abort>:
 800164c:	b510      	push	{r4, lr}
 800164e:	4c06      	ldr	r4, [pc, #24]	@ (8001668 <lamp_dark_init_abort+0x1c>)
 8001650:	0020      	movs	r0, r4
 8001652:	f7ff fd1d 	bl	8001090 <lamp_i2c_write_cancel>
 8001656:	0020      	movs	r0, r4
 8001658:	3030      	adds	r0, #48	@ 0x30
 800165a:	f7ff fae1 	bl	8000c20 <lamp_i2c_read_cancel>
 800165e:	2307      	movs	r3, #7
 8001660:	344c      	adds	r4, #76	@ 0x4c
 8001662:	7023      	strb	r3, [r4, #0]
 8001664:	bd10      	pop	{r4, pc}
 8001666:	46c0      	nop			@ (mov r8, r8)
 8001668:	20000798 	.word	0x20000798

0800166c <lamp_dark_init_begin>:
 800166c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 800166e:	2500      	movs	r5, #0
 8001670:	4e0a      	ldr	r6, [pc, #40]	@ (800169c <lamp_dark_init_begin+0x30>)
 8001672:	0007      	movs	r7, r0
 8001674:	7833      	ldrb	r3, [r6, #0]
 8001676:	4c0a      	ldr	r4, [pc, #40]	@ (80016a0 <lamp_dark_init_begin+0x34>)
 8001678:	42ab      	cmp	r3, r5
 800167a:	d10c      	bne.n	8001696 <lamp_dark_init_begin+0x2a>
 800167c:	0020      	movs	r0, r4
 800167e:	f7ff fd1b 	bl	80010b8 <lamp_i2c_write_reset>
 8001682:	0020      	movs	r0, r4
 8001684:	3030      	adds	r0, #48	@ 0x30
 8001686:	f7ff fae1 	bl	8000c4c <lamp_i2c_read_reset>
 800168a:	6527      	str	r7, [r4, #80]	@ 0x50
 800168c:	6567      	str	r7, [r4, #84]	@ 0x54
 800168e:	3458      	adds	r4, #88	@ 0x58
 8001690:	8025      	strh	r5, [r4, #0]
 8001692:	3501      	adds	r5, #1
 8001694:	7035      	strb	r5, [r6, #0]
 8001696:	0028      	movs	r0, r5
 8001698:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 800169a:	46c0      	nop			@ (mov r8, r8)
 800169c:	200007e4 	.word	0x200007e4
 80016a0:	20000798 	.word	0x20000798

080016a4 <lamp_dark_init_poll>:
 80016a4:	b5f0      	push	{r4, r5, r6, r7, lr}
 80016a6:	4b4a      	ldr	r3, [pc, #296]	@ (80017d0 <lamp_dark_init_poll+0x12c>)
 80016a8:	0005      	movs	r5, r0
 80016aa:	781e      	ldrb	r6, [r3, #0]
 80016ac:	4c49      	ldr	r4, [pc, #292]	@ (80017d4 <lamp_dark_init_poll+0x130>)
 80016ae:	b087      	sub	sp, #28
 80016b0:	2e00      	cmp	r6, #0
 80016b2:	d100      	bne.n	80016b6 <lamp_dark_init_poll+0x12>
 80016b4:	e083      	b.n	80017be <lamp_dark_init_poll+0x11a>
 80016b6:	1fb3      	subs	r3, r6, #6
 80016b8:	2b01      	cmp	r3, #1
 80016ba:	d800      	bhi.n	80016be <lamp_dark_init_poll+0x1a>
 80016bc:	e07f      	b.n	80017be <lamp_dark_init_poll+0x11a>
 80016be:	6d23      	ldr	r3, [r4, #80]	@ 0x50
 80016c0:	1ac3      	subs	r3, r0, r3
 80016c2:	2b05      	cmp	r3, #5
 80016c4:	d805      	bhi.n	80016d2 <lamp_dark_init_poll+0x2e>
 80016c6:	22fa      	movs	r2, #250	@ 0xfa
 80016c8:	6d63      	ldr	r3, [r4, #84]	@ 0x54
 80016ca:	0052      	lsls	r2, r2, #1
 80016cc:	1ac3      	subs	r3, r0, r3
 80016ce:	4293      	cmp	r3, r2
 80016d0:	d902      	bls.n	80016d8 <lamp_dark_init_poll+0x34>
 80016d2:	f7ff ffbb 	bl	800164c <lamp_dark_init_abort>
 80016d6:	e072      	b.n	80017be <lamp_dark_init_poll+0x11a>
 80016d8:	0023      	movs	r3, r4
 80016da:	3358      	adds	r3, #88	@ 0x58
 80016dc:	881f      	ldrh	r7, [r3, #0]
 80016de:	213a      	movs	r1, #58	@ 0x3a
 80016e0:	6520      	str	r0, [r4, #80]	@ 0x50
 80016e2:	0038      	movs	r0, r7
 80016e4:	f004 f804 	bl	80056f0 <__udivsi3>
 80016e8:	213a      	movs	r1, #58	@ 0x3a
 80016ea:	9003      	str	r0, [sp, #12]
 80016ec:	0038      	movs	r0, r7
 80016ee:	f004 f885 	bl	80057fc <__aeabi_uidivmod>
 80016f2:	1e70      	subs	r0, r6, #1
 80016f4:	b28f      	uxth	r7, r1
 80016f6:	b2ca      	uxtb	r2, r1
 80016f8:	2804      	cmp	r0, #4
 80016fa:	d8ea      	bhi.n	80016d2 <lamp_dark_init_poll+0x2e>
 80016fc:	f003 ffee 	bl	80056dc <__gnu_thumb1_case_uqi>
 8001700:	35271703 	.word	0x35271703
 8001704:	61          	.byte	0x61
 8001705:	00          	.byte	0x00
 8001706:	a805      	add	r0, sp, #20
 8001708:	7002      	strb	r2, [r0, #0]
 800170a:	2300      	movs	r3, #0
 800170c:	466a      	mov	r2, sp
 800170e:	7043      	strb	r3, [r0, #1]
 8001710:	7b12      	ldrb	r2, [r2, #12]
 8001712:	4b31      	ldr	r3, [pc, #196]	@ (80017d8 <lamp_dark_init_poll+0x134>)
 8001714:	9500      	str	r5, [sp, #0]
 8001716:	5c99      	ldrb	r1, [r3, r2]
 8001718:	0002      	movs	r2, r0
 800171a:	2302      	movs	r3, #2
 800171c:	0020      	movs	r0, r4
 800171e:	f7ff fcdb 	bl	80010d8 <lamp_i2c_write_start>
 8001722:	2800      	cmp	r0, #0
 8001724:	d0d5      	beq.n	80016d2 <lamp_dark_init_poll+0x2e>
 8001726:	2302      	movs	r3, #2
 8001728:	344c      	adds	r4, #76	@ 0x4c
 800172a:	7023      	strb	r3, [r4, #0]
 800172c:	e047      	b.n	80017be <lamp_dark_init_poll+0x11a>
 800172e:	0029      	movs	r1, r5
 8001730:	0020      	movs	r0, r4
 8001732:	f7ff fd53 	bl	80011dc <lamp_i2c_write_poll>
 8001736:	7823      	ldrb	r3, [r4, #0]
 8001738:	2b04      	cmp	r3, #4
 800173a:	d0ca      	beq.n	80016d2 <lamp_dark_init_poll+0x2e>
 800173c:	0029      	movs	r1, r5
 800173e:	0020      	movs	r0, r4
 8001740:	f7ff fdaa 	bl	8001298 <lamp_i2c_write_done>
 8001744:	2800      	cmp	r0, #0
 8001746:	d03a      	beq.n	80017be <lamp_dark_init_poll+0x11a>
 8001748:	2303      	movs	r3, #3
 800174a:	344c      	adds	r4, #76	@ 0x4c
 800174c:	e7ed      	b.n	800172a <lamp_dark_init_poll+0x86>
 800174e:	466b      	mov	r3, sp
 8001750:	0020      	movs	r0, r4
 8001752:	7b1b      	ldrb	r3, [r3, #12]
 8001754:	4920      	ldr	r1, [pc, #128]	@ (80017d8 <lamp_dark_init_poll+0x134>)
 8001756:	3030      	adds	r0, #48	@ 0x30
 8001758:	5cc9      	ldrb	r1, [r1, r3]
 800175a:	002b      	movs	r3, r5
 800175c:	f7ff fa1a 	bl	8000b94 <lamp_i2c_read_start>
 8001760:	2800      	cmp	r0, #0
 8001762:	d0b6      	beq.n	80016d2 <lamp_dark_init_poll+0x2e>
 8001764:	2304      	movs	r3, #4
 8001766:	344c      	adds	r4, #76	@ 0x4c
 8001768:	e7df      	b.n	800172a <lamp_dark_init_poll+0x86>
 800176a:	0026      	movs	r6, r4
 800176c:	3630      	adds	r6, #48	@ 0x30
 800176e:	0029      	movs	r1, r5
 8001770:	0030      	movs	r0, r6
 8001772:	f7ff fa7b 	bl	8000c6c <lamp_i2c_read_poll>
 8001776:	7833      	ldrb	r3, [r6, #0]
 8001778:	2b06      	cmp	r3, #6
 800177a:	d0aa      	beq.n	80016d2 <lamp_dark_init_poll+0x2e>
 800177c:	0029      	movs	r1, r5
 800177e:	0030      	movs	r0, r6
 8001780:	aa05      	add	r2, sp, #20
 8001782:	f7ff fae1 	bl	8000d48 <lamp_i2c_read_get>
 8001786:	2800      	cmp	r0, #0
 8001788:	d019      	beq.n	80017be <lamp_dark_init_poll+0x11a>
 800178a:	ab02      	add	r3, sp, #8
 800178c:	7b1a      	ldrb	r2, [r3, #12]
 800178e:	2300      	movs	r3, #0
 8001790:	2f01      	cmp	r7, #1
 8001792:	d100      	bne.n	8001796 <lamp_dark_init_poll+0xf2>
 8001794:	3305      	adds	r3, #5
 8001796:	429a      	cmp	r2, r3
 8001798:	d19b      	bne.n	80016d2 <lamp_dark_init_poll+0x2e>
 800179a:	0022      	movs	r2, r4
 800179c:	3258      	adds	r2, #88	@ 0x58
 800179e:	8813      	ldrh	r3, [r2, #0]
 80017a0:	3301      	adds	r3, #1
 80017a2:	b29b      	uxth	r3, r3
 80017a4:	8013      	strh	r3, [r2, #0]
 80017a6:	2f00      	cmp	r7, #0
 80017a8:	d103      	bne.n	80017b2 <lamp_dark_init_poll+0x10e>
 80017aa:	65e5      	str	r5, [r4, #92]	@ 0x5c
 80017ac:	2305      	movs	r3, #5
 80017ae:	344c      	adds	r4, #76	@ 0x4c
 80017b0:	e7bb      	b.n	800172a <lamp_dark_init_poll+0x86>
 80017b2:	2201      	movs	r2, #1
 80017b4:	2bae      	cmp	r3, #174	@ 0xae
 80017b6:	d100      	bne.n	80017ba <lamp_dark_init_poll+0x116>
 80017b8:	3205      	adds	r2, #5
 80017ba:	344c      	adds	r4, #76	@ 0x4c
 80017bc:	7022      	strb	r2, [r4, #0]
 80017be:	b007      	add	sp, #28
 80017c0:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80017c2:	6de3      	ldr	r3, [r4, #92]	@ 0x5c
 80017c4:	1aed      	subs	r5, r5, r3
 80017c6:	2d01      	cmp	r5, #1
 80017c8:	d9f9      	bls.n	80017be <lamp_dark_init_poll+0x11a>
 80017ca:	2301      	movs	r3, #1
 80017cc:	344c      	adds	r4, #76	@ 0x4c
 80017ce:	e7ac      	b.n	800172a <lamp_dark_init_poll+0x86>
 80017d0:	200007e4 	.word	0x200007e4
 80017d4:	20000798 	.word	0x20000798
 80017d8:	08005b74 	.word	0x08005b74

080017dc <lamp_dark_init_done>:
 80017dc:	4b03      	ldr	r3, [pc, #12]	@ (80017ec <lamp_dark_init_done+0x10>)
 80017de:	7818      	ldrb	r0, [r3, #0]
 80017e0:	3806      	subs	r0, #6
 80017e2:	4243      	negs	r3, r0
 80017e4:	4158      	adcs	r0, r3
 80017e6:	b2c0      	uxtb	r0, r0
 80017e8:	4770      	bx	lr
 80017ea:	46c0      	nop			@ (mov r8, r8)
 80017ec:	200007e4 	.word	0x200007e4

080017f0 <lamp_dark_init_failed>:
 80017f0:	4b03      	ldr	r3, [pc, #12]	@ (8001800 <lamp_dark_init_failed+0x10>)
 80017f2:	7818      	ldrb	r0, [r3, #0]
 80017f4:	3807      	subs	r0, #7
 80017f6:	4243      	negs	r3, r0
 80017f8:	4158      	adcs	r0, r3
 80017fa:	b2c0      	uxtb	r0, r0
 80017fc:	4770      	bx	lr
 80017fe:	46c0      	nop			@ (mov r8, r8)
 8001800:	200007e4 	.word	0x200007e4

08001804 <allowed>:
 8001804:	b510      	push	{r4, lr}
 8001806:	2800      	cmp	r0, #0
 8001808:	d101      	bne.n	800180e <allowed+0xa>
 800180a:	2000      	movs	r0, #0
 800180c:	bd10      	pop	{r4, pc}
 800180e:	2900      	cmp	r1, #0
 8001810:	d0fb      	beq.n	800180a <allowed+0x6>
 8001812:	000b      	movs	r3, r1
 8001814:	3341      	adds	r3, #65	@ 0x41
 8001816:	781b      	ldrb	r3, [r3, #0]
 8001818:	2b00      	cmp	r3, #0
 800181a:	d0f6      	beq.n	800180a <allowed+0x6>
 800181c:	6809      	ldr	r1, [r1, #0]
 800181e:	2900      	cmp	r1, #0
 8001820:	d0f3      	beq.n	800180a <allowed+0x6>
 8001822:	2384      	movs	r3, #132	@ 0x84
 8001824:	009b      	lsls	r3, r3, #2
 8001826:	5cc3      	ldrb	r3, [r0, r3]
 8001828:	2b00      	cmp	r3, #0
 800182a:	d0ee      	beq.n	800180a <allowed+0x6>
 800182c:	4b32      	ldr	r3, [pc, #200]	@ (80018f8 <allowed+0xf4>)
 800182e:	5cc3      	ldrb	r3, [r0, r3]
 8001830:	2b00      	cmp	r3, #0
 8001832:	d0ea      	beq.n	800180a <allowed+0x6>
 8001834:	2386      	movs	r3, #134	@ 0x86
 8001836:	009b      	lsls	r3, r3, #2
 8001838:	18c4      	adds	r4, r0, r3
 800183a:	cc18      	ldmia	r4, {r3, r4}
 800183c:	4323      	orrs	r3, r4
 800183e:	d0e4      	beq.n	800180a <allowed+0x6>
 8001840:	8803      	ldrh	r3, [r0, #0]
 8001842:	2b3d      	cmp	r3, #61	@ 0x3d
 8001844:	d1e1      	bne.n	800180a <allowed+0x6>
 8001846:	33c4      	adds	r3, #196	@ 0xc4
 8001848:	33ff      	adds	r3, #255	@ 0xff
 800184a:	58c3      	ldr	r3, [r0, r3]
 800184c:	4299      	cmp	r1, r3
 800184e:	d1dc      	bne.n	800180a <allowed+0x6>
 8001850:	2381      	movs	r3, #129	@ 0x81
 8001852:	009b      	lsls	r3, r3, #2
 8001854:	5cc3      	ldrb	r3, [r0, r3]
 8001856:	3b01      	subs	r3, #1
 8001858:	b2db      	uxtb	r3, r3
 800185a:	2b01      	cmp	r3, #1
 800185c:	d8d5      	bhi.n	800180a <allowed+0x6>
 800185e:	4b27      	ldr	r3, [pc, #156]	@ (80018fc <allowed+0xf8>)
 8001860:	5cc3      	ldrb	r3, [r0, r3]
 8001862:	2b00      	cmp	r3, #0
 8001864:	d0d1      	beq.n	800180a <allowed+0x6>
 8001866:	4b26      	ldr	r3, [pc, #152]	@ (8001900 <allowed+0xfc>)
 8001868:	5cc3      	ldrb	r3, [r0, r3]
 800186a:	2b00      	cmp	r3, #0
 800186c:	d0cd      	beq.n	800180a <allowed+0x6>
 800186e:	4b25      	ldr	r3, [pc, #148]	@ (8001904 <allowed+0x100>)
 8001870:	5cc3      	ldrb	r3, [r0, r3]
 8001872:	2b00      	cmp	r3, #0
 8001874:	d0c9      	beq.n	800180a <allowed+0x6>
 8001876:	2385      	movs	r3, #133	@ 0x85
 8001878:	009b      	lsls	r3, r3, #2
 800187a:	5cc3      	ldrb	r3, [r0, r3]
 800187c:	2b00      	cmp	r3, #0
 800187e:	d0c4      	beq.n	800180a <allowed+0x6>
 8001880:	4b21      	ldr	r3, [pc, #132]	@ (8001908 <allowed+0x104>)
 8001882:	5cc3      	ldrb	r3, [r0, r3]
 8001884:	2b00      	cmp	r3, #0
 8001886:	d0c0      	beq.n	800180a <allowed+0x6>
 8001888:	4b20      	ldr	r3, [pc, #128]	@ (800190c <allowed+0x108>)
 800188a:	5cc3      	ldrb	r3, [r0, r3]
 800188c:	2b00      	cmp	r3, #0
 800188e:	d0bc      	beq.n	800180a <allowed+0x6>
 8001890:	4b1f      	ldr	r3, [pc, #124]	@ (8001910 <allowed+0x10c>)
 8001892:	5cc3      	ldrb	r3, [r0, r3]
 8001894:	2b00      	cmp	r3, #0
 8001896:	d0b8      	beq.n	800180a <allowed+0x6>
 8001898:	4b1e      	ldr	r3, [pc, #120]	@ (8001914 <allowed+0x110>)
 800189a:	5cc3      	ldrb	r3, [r0, r3]
 800189c:	2b00      	cmp	r3, #0
 800189e:	d0b4      	beq.n	800180a <allowed+0x6>
 80018a0:	2382      	movs	r3, #130	@ 0x82
 80018a2:	009b      	lsls	r3, r3, #2
 80018a4:	5cc3      	ldrb	r3, [r0, r3]
 80018a6:	2b00      	cmp	r3, #0
 80018a8:	d0af      	beq.n	800180a <allowed+0x6>
 80018aa:	68c1      	ldr	r1, [r0, #12]
 80018ac:	2900      	cmp	r1, #0
 80018ae:	d0ac      	beq.n	800180a <allowed+0x6>
 80018b0:	2393      	movs	r3, #147	@ 0x93
 80018b2:	009b      	lsls	r3, r3, #2
 80018b4:	58c3      	ldr	r3, [r0, r3]
 80018b6:	1ad3      	subs	r3, r2, r3
 80018b8:	4299      	cmp	r1, r3
 80018ba:	d3a6      	bcc.n	800180a <allowed+0x6>
 80018bc:	6881      	ldr	r1, [r0, #8]
 80018be:	2900      	cmp	r1, #0
 80018c0:	d0a3      	beq.n	800180a <allowed+0x6>
 80018c2:	2383      	movs	r3, #131	@ 0x83
 80018c4:	009b      	lsls	r3, r3, #2
 80018c6:	58c3      	ldr	r3, [r0, r3]
 80018c8:	1ad3      	subs	r3, r2, r3
 80018ca:	4299      	cmp	r1, r3
 80018cc:	d99d      	bls.n	800180a <allowed+0x6>
 80018ce:	2390      	movs	r3, #144	@ 0x90
 80018d0:	009b      	lsls	r3, r3, #2
 80018d2:	58c3      	ldr	r3, [r0, r3]
 80018d4:	1ad3      	subs	r3, r2, r3
 80018d6:	4299      	cmp	r1, r3
 80018d8:	d800      	bhi.n	80018dc <allowed+0xd8>
 80018da:	e796      	b.n	800180a <allowed+0x6>
 80018dc:	2392      	movs	r3, #146	@ 0x92
 80018de:	009b      	lsls	r3, r3, #2
 80018e0:	58c3      	ldr	r3, [r0, r3]
 80018e2:	2b00      	cmp	r3, #0
 80018e4:	d100      	bne.n	80018e8 <allowed+0xe4>
 80018e6:	e790      	b.n	800180a <allowed+0x6>
 80018e8:	2191      	movs	r1, #145	@ 0x91
 80018ea:	0089      	lsls	r1, r1, #2
 80018ec:	5840      	ldr	r0, [r0, r1]
 80018ee:	1a10      	subs	r0, r2, r0
 80018f0:	4298      	cmp	r0, r3
 80018f2:	4180      	sbcs	r0, r0
 80018f4:	4240      	negs	r0, r0
 80018f6:	e789      	b.n	800180c <allowed+0x8>
 80018f8:	00000211 	.word	0x00000211
 80018fc:	00000212 	.word	0x00000212
 8001900:	0000020a 	.word	0x0000020a
 8001904:	0000020b 	.word	0x0000020b
 8001908:	00000209 	.word	0x00000209
 800190c:	00000205 	.word	0x00000205
 8001910:	00000206 	.word	0x00000206
 8001914:	00000207 	.word	0x00000207

08001918 <same>:
 8001918:	b570      	push	{r4, r5, r6, lr}
 800191a:	000e      	movs	r6, r1
 800191c:	0015      	movs	r5, r2
 800191e:	0004      	movs	r4, r0
 8001920:	001a      	movs	r2, r3
 8001922:	0029      	movs	r1, r5
 8001924:	0030      	movs	r0, r6
 8001926:	f7ff ff6d 	bl	8001804 <allowed>
 800192a:	2800      	cmp	r0, #0
 800192c:	d101      	bne.n	8001932 <same+0x1a>
 800192e:	2000      	movs	r0, #0
 8001930:	bd70      	pop	{r4, r5, r6, pc}
 8001932:	2386      	movs	r3, #134	@ 0x86
 8001934:	009b      	lsls	r3, r3, #2
 8001936:	18f3      	adds	r3, r6, r3
 8001938:	6e21      	ldr	r1, [r4, #96]	@ 0x60
 800193a:	681a      	ldr	r2, [r3, #0]
 800193c:	4291      	cmp	r1, r2
 800193e:	d1f6      	bne.n	800192e <same+0x16>
 8001940:	6e62      	ldr	r2, [r4, #100]	@ 0x64
 8001942:	685b      	ldr	r3, [r3, #4]
 8001944:	429a      	cmp	r2, r3
 8001946:	d1f2      	bne.n	800192e <same+0x16>
 8001948:	6de2      	ldr	r2, [r4, #92]	@ 0x5c
 800194a:	682b      	ldr	r3, [r5, #0]
 800194c:	429a      	cmp	r2, r3
 800194e:	d1ee      	bne.n	800192e <same+0x16>
 8001950:	2394      	movs	r3, #148	@ 0x94
 8001952:	0020      	movs	r0, r4
 8001954:	009b      	lsls	r3, r3, #2
 8001956:	223d      	movs	r2, #61	@ 0x3d
 8001958:	18f1      	adds	r1, r6, r3
 800195a:	306a      	adds	r0, #106	@ 0x6a
 800195c:	f7fe fc39 	bl	80001d2 <memcmp>
 8001960:	2800      	cmp	r0, #0
 8001962:	d1e4      	bne.n	800192e <same+0x16>
 8001964:	0020      	movs	r0, r4
 8001966:	223d      	movs	r2, #61	@ 0x3d
 8001968:	1d29      	adds	r1, r5, #4
 800196a:	30a7      	adds	r0, #167	@ 0xa7
 800196c:	f7fe fc31 	bl	80001d2 <memcmp>
 8001970:	4243      	negs	r3, r0
 8001972:	4158      	adcs	r0, r3
 8001974:	e7dc      	b.n	8001930 <same+0x18>

08001976 <lamp_frame_stage_abort>:
 8001976:	b510      	push	{r4, lr}
 8001978:	1e04      	subs	r4, r0, #0
 800197a:	d008      	beq.n	800198e <lamp_frame_stage_abort+0x18>
 800197c:	f7ff fb88 	bl	8001090 <lamp_i2c_write_cancel>
 8001980:	0020      	movs	r0, r4
 8001982:	3030      	adds	r0, #48	@ 0x30
 8001984:	f7ff f94c 	bl	8000c20 <lamp_i2c_read_cancel>
 8001988:	2307      	movs	r3, #7
 800198a:	344c      	adds	r4, #76	@ 0x4c
 800198c:	7023      	strb	r3, [r4, #0]
 800198e:	bd10      	pop	{r4, pc}

08001990 <lamp_frame_stage_begin>:
 8001990:	b5f0      	push	{r4, r5, r6, r7, lr}
 8001992:	b085      	sub	sp, #20
 8001994:	0004      	movs	r4, r0
 8001996:	0017      	movs	r7, r2
 8001998:	9100      	str	r1, [sp, #0]
 800199a:	9301      	str	r3, [sp, #4]
 800199c:	2800      	cmp	r0, #0
 800199e:	d103      	bne.n	80019a8 <lamp_frame_stage_begin+0x18>
 80019a0:	2600      	movs	r6, #0
 80019a2:	0030      	movs	r0, r6
 80019a4:	b005      	add	sp, #20
 80019a6:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80019a8:	0003      	movs	r3, r0
 80019aa:	334c      	adds	r3, #76	@ 0x4c
 80019ac:	9303      	str	r3, [sp, #12]
 80019ae:	781b      	ldrb	r3, [r3, #0]
 80019b0:	2b00      	cmp	r3, #0
 80019b2:	d001      	beq.n	80019b8 <lamp_frame_stage_begin+0x28>
 80019b4:	2b06      	cmp	r3, #6
 80019b6:	d1f3      	bne.n	80019a0 <lamp_frame_stage_begin+0x10>
 80019b8:	0039      	movs	r1, r7
 80019ba:	9a01      	ldr	r2, [sp, #4]
 80019bc:	9800      	ldr	r0, [sp, #0]
 80019be:	f7ff ff21 	bl	8001804 <allowed>
 80019c2:	1e06      	subs	r6, r0, #0
 80019c4:	d0ed      	beq.n	80019a2 <lamp_frame_stage_begin+0x12>
 80019c6:	2294      	movs	r2, #148	@ 0x94
 80019c8:	2500      	movs	r5, #0
 80019ca:	9b00      	ldr	r3, [sp, #0]
 80019cc:	0092      	lsls	r2, r2, #2
 80019ce:	189b      	adds	r3, r3, r2
 80019d0:	9302      	str	r3, [sp, #8]
 80019d2:	1d3b      	adds	r3, r7, #4
 80019d4:	9a02      	ldr	r2, [sp, #8]
 80019d6:	5d52      	ldrb	r2, [r2, r5]
 80019d8:	2a00      	cmp	r2, #0
 80019da:	d002      	beq.n	80019e2 <lamp_frame_stage_begin+0x52>
 80019dc:	5d5a      	ldrb	r2, [r3, r5]
 80019de:	2a00      	cmp	r2, #0
 80019e0:	d0de      	beq.n	80019a0 <lamp_frame_stage_begin+0x10>
 80019e2:	3501      	adds	r5, #1
 80019e4:	2d3d      	cmp	r5, #61	@ 0x3d
 80019e6:	d1f5      	bne.n	80019d4 <lamp_frame_stage_begin+0x44>
 80019e8:	0020      	movs	r0, r4
 80019ea:	f7ff fb65 	bl	80010b8 <lamp_i2c_write_reset>
 80019ee:	0020      	movs	r0, r4
 80019f0:	3030      	adds	r0, #48	@ 0x30
 80019f2:	f7ff f92b 	bl	8000c4c <lamp_i2c_read_reset>
 80019f6:	0020      	movs	r0, r4
 80019f8:	002a      	movs	r2, r5
 80019fa:	9902      	ldr	r1, [sp, #8]
 80019fc:	306a      	adds	r0, #106	@ 0x6a
 80019fe:	f7fe fbd7 	bl	80001b0 <memcpy>
 8001a02:	0020      	movs	r0, r4
 8001a04:	002a      	movs	r2, r5
 8001a06:	1d39      	adds	r1, r7, #4
 8001a08:	30a7      	adds	r0, #167	@ 0xa7
 8001a0a:	f7fe fbd1 	bl	80001b0 <memcpy>
 8001a0e:	2286      	movs	r2, #134	@ 0x86
 8001a10:	9b00      	ldr	r3, [sp, #0]
 8001a12:	0092      	lsls	r2, r2, #2
 8001a14:	189b      	adds	r3, r3, r2
 8001a16:	cb0c      	ldmia	r3, {r2, r3}
 8001a18:	6622      	str	r2, [r4, #96]	@ 0x60
 8001a1a:	6663      	str	r3, [r4, #100]	@ 0x64
 8001a1c:	683b      	ldr	r3, [r7, #0]
 8001a1e:	9a03      	ldr	r2, [sp, #12]
 8001a20:	65e3      	str	r3, [r4, #92]	@ 0x5c
 8001a22:	9b01      	ldr	r3, [sp, #4]
 8001a24:	6563      	str	r3, [r4, #84]	@ 0x54
 8001a26:	6523      	str	r3, [r4, #80]	@ 0x50
 8001a28:	2300      	movs	r3, #0
 8001a2a:	3468      	adds	r4, #104	@ 0x68
 8001a2c:	8023      	strh	r3, [r4, #0]
 8001a2e:	3301      	adds	r3, #1
 8001a30:	7013      	strb	r3, [r2, #0]
 8001a32:	e7b6      	b.n	80019a2 <lamp_frame_stage_begin+0x12>

08001a34 <lamp_frame_stage_poll>:
 8001a34:	b5f0      	push	{r4, r5, r6, r7, lr}
 8001a36:	0004      	movs	r4, r0
 8001a38:	001e      	movs	r6, r3
 8001a3a:	b089      	sub	sp, #36	@ 0x24
 8001a3c:	2800      	cmp	r0, #0
 8001a3e:	d100      	bne.n	8001a42 <lamp_frame_stage_poll+0xe>
 8001a40:	e082      	b.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001a42:	0003      	movs	r3, r0
 8001a44:	334c      	adds	r3, #76	@ 0x4c
 8001a46:	9302      	str	r3, [sp, #8]
 8001a48:	781b      	ldrb	r3, [r3, #0]
 8001a4a:	2b00      	cmp	r3, #0
 8001a4c:	d07c      	beq.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001a4e:	2b07      	cmp	r3, #7
 8001a50:	d07a      	beq.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001a52:	0033      	movs	r3, r6
 8001a54:	f7ff ff60 	bl	8001918 <same>
 8001a58:	2800      	cmp	r0, #0
 8001a5a:	d009      	beq.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001a5c:	6d63      	ldr	r3, [r4, #84]	@ 0x54
 8001a5e:	1af3      	subs	r3, r6, r3
 8001a60:	2b05      	cmp	r3, #5
 8001a62:	d805      	bhi.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001a64:	22fa      	movs	r2, #250	@ 0xfa
 8001a66:	6d23      	ldr	r3, [r4, #80]	@ 0x50
 8001a68:	0052      	lsls	r2, r2, #1
 8001a6a:	1af3      	subs	r3, r6, r3
 8001a6c:	4293      	cmp	r3, r2
 8001a6e:	d903      	bls.n	8001a78 <lamp_frame_stage_poll+0x44>
 8001a70:	0020      	movs	r0, r4
 8001a72:	f7ff ff80 	bl	8001976 <lamp_frame_stage_abort>
 8001a76:	e067      	b.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001a78:	9b02      	ldr	r3, [sp, #8]
 8001a7a:	6566      	str	r6, [r4, #84]	@ 0x54
 8001a7c:	781b      	ldrb	r3, [r3, #0]
 8001a7e:	9305      	str	r3, [sp, #20]
 8001a80:	2b06      	cmp	r3, #6
 8001a82:	d061      	beq.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001a84:	0023      	movs	r3, r4
 8001a86:	3368      	adds	r3, #104	@ 0x68
 8001a88:	9304      	str	r3, [sp, #16]
 8001a8a:	881f      	ldrh	r7, [r3, #0]
 8001a8c:	213a      	movs	r1, #58	@ 0x3a
 8001a8e:	0038      	movs	r0, r7
 8001a90:	f003 fe2e 	bl	80056f0 <__udivsi3>
 8001a94:	213a      	movs	r1, #58	@ 0x3a
 8001a96:	b285      	uxth	r5, r0
 8001a98:	0038      	movs	r0, r7
 8001a9a:	f003 feaf 	bl	80057fc <__aeabi_uidivmod>
 8001a9e:	b28f      	uxth	r7, r1
 8001aa0:	2f01      	cmp	r7, #1
 8001aa2:	d920      	bls.n	8001ae6 <lamp_frame_stage_poll+0xb2>
 8001aa4:	1eba      	subs	r2, r7, #2
 8001aa6:	2a05      	cmp	r2, #5
 8001aa8:	d814      	bhi.n	8001ad4 <lamp_frame_stage_poll+0xa0>
 8001aaa:	2306      	movs	r3, #6
 8001aac:	436b      	muls	r3, r5
 8001aae:	189b      	adds	r3, r3, r2
 8001ab0:	009b      	lsls	r3, r3, #2
 8001ab2:	2b3c      	cmp	r3, #60	@ 0x3c
 8001ab4:	d817      	bhi.n	8001ae6 <lamp_frame_stage_poll+0xb2>
 8001ab6:	2202      	movs	r2, #2
 8001ab8:	9203      	str	r2, [sp, #12]
 8001aba:	2b3c      	cmp	r3, #60	@ 0x3c
 8001abc:	d001      	beq.n	8001ac2 <lamp_frame_stage_poll+0x8e>
 8001abe:	23aa      	movs	r3, #170	@ 0xaa
 8001ac0:	9303      	str	r3, [sp, #12]
 8001ac2:	9805      	ldr	r0, [sp, #20]
 8001ac4:	3801      	subs	r0, #1
 8001ac6:	2804      	cmp	r0, #4
 8001ac8:	d8d2      	bhi.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001aca:	f003 fe07 	bl	80056dc <__gnu_thumb1_case_uqi>
 8001ace:	2f1e      	.short	0x2f1e
 8001ad0:	4b3f      	.short	0x4b3f
 8001ad2:	78          	.byte	0x78
 8001ad3:	00          	.byte	0x00
 8001ad4:	003a      	movs	r2, r7
 8001ad6:	3a0a      	subs	r2, #10
 8001ad8:	2a17      	cmp	r2, #23
 8001ada:	d80a      	bhi.n	8001af2 <lamp_frame_stage_poll+0xbe>
 8001adc:	2318      	movs	r3, #24
 8001ade:	436b      	muls	r3, r5
 8001ae0:	189b      	adds	r3, r3, r2
 8001ae2:	2b3c      	cmp	r3, #60	@ 0x3c
 8001ae4:	d901      	bls.n	8001aea <lamp_frame_stage_poll+0xb6>
 8001ae6:	2300      	movs	r3, #0
 8001ae8:	e7ea      	b.n	8001ac0 <lamp_frame_stage_poll+0x8c>
 8001aea:	18e3      	adds	r3, r4, r3
 8001aec:	336a      	adds	r3, #106	@ 0x6a
 8001aee:	781b      	ldrb	r3, [r3, #0]
 8001af0:	e7e6      	b.n	8001ac0 <lamp_frame_stage_poll+0x8c>
 8001af2:	003a      	movs	r2, r7
 8001af4:	3a22      	subs	r2, #34	@ 0x22
 8001af6:	2a17      	cmp	r2, #23
 8001af8:	d8f5      	bhi.n	8001ae6 <lamp_frame_stage_poll+0xb2>
 8001afa:	2318      	movs	r3, #24
 8001afc:	436b      	muls	r3, r5
 8001afe:	189b      	adds	r3, r3, r2
 8001b00:	2b3c      	cmp	r3, #60	@ 0x3c
 8001b02:	d8f0      	bhi.n	8001ae6 <lamp_frame_stage_poll+0xb2>
 8001b04:	18e3      	adds	r3, r4, r3
 8001b06:	33a7      	adds	r3, #167	@ 0xa7
 8001b08:	e7f1      	b.n	8001aee <lamp_frame_stage_poll+0xba>
 8001b0a:	9b03      	ldr	r3, [sp, #12]
 8001b0c:	aa07      	add	r2, sp, #28
 8001b0e:	7053      	strb	r3, [r2, #1]
 8001b10:	4b2e      	ldr	r3, [pc, #184]	@ (8001bcc <lamp_frame_stage_poll+0x198>)
 8001b12:	7017      	strb	r7, [r2, #0]
 8001b14:	5d59      	ldrb	r1, [r3, r5]
 8001b16:	0020      	movs	r0, r4
 8001b18:	2302      	movs	r3, #2
 8001b1a:	9600      	str	r6, [sp, #0]
 8001b1c:	f7ff fadc 	bl	80010d8 <lamp_i2c_write_start>
 8001b20:	2302      	movs	r3, #2
 8001b22:	2800      	cmp	r0, #0
 8001b24:	d0a4      	beq.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001b26:	9a02      	ldr	r2, [sp, #8]
 8001b28:	7013      	strb	r3, [r2, #0]
 8001b2a:	e00d      	b.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001b2c:	0031      	movs	r1, r6
 8001b2e:	0020      	movs	r0, r4
 8001b30:	f7ff fb54 	bl	80011dc <lamp_i2c_write_poll>
 8001b34:	7823      	ldrb	r3, [r4, #0]
 8001b36:	2b04      	cmp	r3, #4
 8001b38:	d09a      	beq.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001b3a:	0031      	movs	r1, r6
 8001b3c:	0020      	movs	r0, r4
 8001b3e:	f7ff fbab 	bl	8001298 <lamp_i2c_write_done>
 8001b42:	2303      	movs	r3, #3
 8001b44:	2800      	cmp	r0, #0
 8001b46:	d1ee      	bne.n	8001b26 <lamp_frame_stage_poll+0xf2>
 8001b48:	b009      	add	sp, #36	@ 0x24
 8001b4a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8001b4c:	0020      	movs	r0, r4
 8001b4e:	4b1f      	ldr	r3, [pc, #124]	@ (8001bcc <lamp_frame_stage_poll+0x198>)
 8001b50:	b2fa      	uxtb	r2, r7
 8001b52:	5d59      	ldrb	r1, [r3, r5]
 8001b54:	3030      	adds	r0, #48	@ 0x30
 8001b56:	0033      	movs	r3, r6
 8001b58:	f7ff f81c 	bl	8000b94 <lamp_i2c_read_start>
 8001b5c:	2304      	movs	r3, #4
 8001b5e:	2800      	cmp	r0, #0
 8001b60:	d1e1      	bne.n	8001b26 <lamp_frame_stage_poll+0xf2>
 8001b62:	e785      	b.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001b64:	0025      	movs	r5, r4
 8001b66:	3530      	adds	r5, #48	@ 0x30
 8001b68:	0031      	movs	r1, r6
 8001b6a:	0028      	movs	r0, r5
 8001b6c:	f7ff f87e 	bl	8000c6c <lamp_i2c_read_poll>
 8001b70:	782b      	ldrb	r3, [r5, #0]
 8001b72:	2b06      	cmp	r3, #6
 8001b74:	d100      	bne.n	8001b78 <lamp_frame_stage_poll+0x144>
 8001b76:	e77b      	b.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001b78:	0031      	movs	r1, r6
 8001b7a:	0028      	movs	r0, r5
 8001b7c:	aa07      	add	r2, sp, #28
 8001b7e:	f7ff f8e3 	bl	8000d48 <lamp_i2c_read_get>
 8001b82:	2800      	cmp	r0, #0
 8001b84:	d0e0      	beq.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001b86:	ab04      	add	r3, sp, #16
 8001b88:	7b1b      	ldrb	r3, [r3, #12]
 8001b8a:	2f01      	cmp	r7, #1
 8001b8c:	d101      	bne.n	8001b92 <lamp_frame_stage_poll+0x15e>
 8001b8e:	2205      	movs	r2, #5
 8001b90:	9203      	str	r2, [sp, #12]
 8001b92:	9a03      	ldr	r2, [sp, #12]
 8001b94:	429a      	cmp	r2, r3
 8001b96:	d000      	beq.n	8001b9a <lamp_frame_stage_poll+0x166>
 8001b98:	e76a      	b.n	8001a70 <lamp_frame_stage_poll+0x3c>
 8001b9a:	9b04      	ldr	r3, [sp, #16]
 8001b9c:	9a04      	ldr	r2, [sp, #16]
 8001b9e:	881b      	ldrh	r3, [r3, #0]
 8001ba0:	3301      	adds	r3, #1
 8001ba2:	b29b      	uxth	r3, r3
 8001ba4:	8013      	strh	r3, [r2, #0]
 8001ba6:	2f00      	cmp	r7, #0
 8001ba8:	d102      	bne.n	8001bb0 <lamp_frame_stage_poll+0x17c>
 8001baa:	2305      	movs	r3, #5
 8001bac:	65a6      	str	r6, [r4, #88]	@ 0x58
 8001bae:	e7ba      	b.n	8001b26 <lamp_frame_stage_poll+0xf2>
 8001bb0:	2201      	movs	r2, #1
 8001bb2:	2bae      	cmp	r3, #174	@ 0xae
 8001bb4:	d100      	bne.n	8001bb8 <lamp_frame_stage_poll+0x184>
 8001bb6:	3205      	adds	r2, #5
 8001bb8:	9b02      	ldr	r3, [sp, #8]
 8001bba:	701a      	strb	r2, [r3, #0]
 8001bbc:	e7c4      	b.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001bbe:	6da3      	ldr	r3, [r4, #88]	@ 0x58
 8001bc0:	1af3      	subs	r3, r6, r3
 8001bc2:	2b01      	cmp	r3, #1
 8001bc4:	d9c0      	bls.n	8001b48 <lamp_frame_stage_poll+0x114>
 8001bc6:	2301      	movs	r3, #1
 8001bc8:	e7ad      	b.n	8001b26 <lamp_frame_stage_poll+0xf2>
 8001bca:	46c0      	nop			@ (mov r8, r8)
 8001bcc:	08005b77 	.word	0x08005b77

08001bd0 <lamp_frame_stage_done>:
 8001bd0:	b570      	push	{r4, r5, r6, lr}
 8001bd2:	0005      	movs	r5, r0
 8001bd4:	001c      	movs	r4, r3
 8001bd6:	2800      	cmp	r0, #0
 8001bd8:	d101      	bne.n	8001bde <lamp_frame_stage_done+0xe>
 8001bda:	2000      	movs	r0, #0
 8001bdc:	bd70      	pop	{r4, r5, r6, pc}
 8001bde:	0003      	movs	r3, r0
 8001be0:	334c      	adds	r3, #76	@ 0x4c
 8001be2:	781b      	ldrb	r3, [r3, #0]
 8001be4:	2b06      	cmp	r3, #6
 8001be6:	d1f8      	bne.n	8001bda <lamp_frame_stage_done+0xa>
 8001be8:	0023      	movs	r3, r4
 8001bea:	f7ff fe95 	bl	8001918 <same>
 8001bee:	2800      	cmp	r0, #0
 8001bf0:	d0f3      	beq.n	8001bda <lamp_frame_stage_done+0xa>
 8001bf2:	6d6b      	ldr	r3, [r5, #84]	@ 0x54
 8001bf4:	1ae3      	subs	r3, r4, r3
 8001bf6:	2b05      	cmp	r3, #5
 8001bf8:	d8ef      	bhi.n	8001bda <lamp_frame_stage_done+0xa>
 8001bfa:	6d2b      	ldr	r3, [r5, #80]	@ 0x50
 8001bfc:	2000      	movs	r0, #0
 8001bfe:	1ae4      	subs	r4, r4, r3
 8001c00:	23fa      	movs	r3, #250	@ 0xfa
 8001c02:	005b      	lsls	r3, r3, #1
 8001c04:	42a3      	cmp	r3, r4
 8001c06:	4140      	adcs	r0, r0
 8001c08:	e7e8      	b.n	8001bdc <lamp_frame_stage_done+0xc>
 8001c0a:	46c0      	nop			@ (mov r8, r8)

08001c0c <pin>:
 8001c0c:	6803      	ldr	r3, [r0, #0]
 8001c0e:	b510      	push	{r4, lr}
 8001c10:	004c      	lsls	r4, r1, #1
 8001c12:	40e3      	lsrs	r3, r4
 8001c14:	2403      	movs	r4, #3
 8001c16:	4023      	ands	r3, r4
 8001c18:	2b01      	cmp	r3, #1
 8001c1a:	d001      	beq.n	8001c20 <pin+0x14>
 8001c1c:	2000      	movs	r0, #0
 8001c1e:	bd10      	pop	{r4, pc}
 8001c20:	408b      	lsls	r3, r1
 8001c22:	001c      	movs	r4, r3
 8001c24:	6841      	ldr	r1, [r0, #4]
 8001c26:	400c      	ands	r4, r1
 8001c28:	420b      	tst	r3, r1
 8001c2a:	d1f7      	bne.n	8001c1c <pin+0x10>
 8001c2c:	6941      	ldr	r1, [r0, #20]
 8001c2e:	4019      	ands	r1, r3
 8001c30:	2a00      	cmp	r2, #0
 8001c32:	d000      	beq.n	8001c36 <pin+0x2a>
 8001c34:	001c      	movs	r4, r3
 8001c36:	42a1      	cmp	r1, r4
 8001c38:	d1f0      	bne.n	8001c1c <pin+0x10>
 8001c3a:	6902      	ldr	r2, [r0, #16]
 8001c3c:	4013      	ands	r3, r2
 8001c3e:	1a58      	subs	r0, r3, r1
 8001c40:	4243      	negs	r3, r0
 8001c42:	4158      	adcs	r0, r3
 8001c44:	e7eb      	b.n	8001c1e <pin+0x12>

08001c46 <lamp_output_pins_request_off>:
 8001c46:	2207      	movs	r2, #7
 8001c48:	4b0b      	ldr	r3, [pc, #44]	@ (8001c78 <lamp_output_pins_request_off+0x32>)
 8001c4a:	6b59      	ldr	r1, [r3, #52]	@ 0x34
 8001c4c:	430a      	orrs	r2, r1
 8001c4e:	635a      	str	r2, [r3, #52]	@ 0x34
 8001c50:	2201      	movs	r2, #1
 8001c52:	6c19      	ldr	r1, [r3, #64]	@ 0x40
 8001c54:	430a      	orrs	r2, r1
 8001c56:	641a      	str	r2, [r3, #64]	@ 0x40
 8001c58:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 8001c5a:	6c1b      	ldr	r3, [r3, #64]	@ 0x40
 8001c5c:	f3bf 8f4f 	dsb	sy
 8001c60:	23a0      	movs	r3, #160	@ 0xa0
 8001c62:	4a06      	ldr	r2, [pc, #24]	@ (8001c7c <lamp_output_pins_request_off+0x36>)
 8001c64:	05db      	lsls	r3, r3, #23
 8001c66:	619a      	str	r2, [r3, #24]
 8001c68:	2280      	movs	r2, #128	@ 0x80
 8001c6a:	4b05      	ldr	r3, [pc, #20]	@ (8001c80 <lamp_output_pins_request_off+0x3a>)
 8001c6c:	0492      	lsls	r2, r2, #18
 8001c6e:	619a      	str	r2, [r3, #24]
 8001c70:	f3bf 8f4f 	dsb	sy
 8001c74:	4770      	bx	lr
 8001c76:	46c0      	nop			@ (mov r8, r8)
 8001c78:	40021000 	.word	0x40021000
 8001c7c:	0a100080 	.word	0x0a100080
 8001c80:	50000400 	.word	0x50000400

08001c84 <lamp_output_pins_read_off>:
 8001c84:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8001c86:	4d21      	ldr	r5, [pc, #132]	@ (8001d0c <lamp_output_pins_read_off+0x88>)
 8001c88:	2601      	movs	r6, #1
 8001c8a:	6b6b      	ldr	r3, [r5, #52]	@ 0x34
 8001c8c:	001c      	movs	r4, r3
 8001c8e:	4034      	ands	r4, r6
 8001c90:	4233      	tst	r3, r6
 8001c92:	d01e      	beq.n	8001cd2 <lamp_output_pins_read_off+0x4e>
 8001c94:	20a0      	movs	r0, #160	@ 0xa0
 8001c96:	2200      	movs	r2, #0
 8001c98:	2104      	movs	r1, #4
 8001c9a:	05c0      	lsls	r0, r0, #23
 8001c9c:	f7ff ffb6 	bl	8001c0c <pin>
 8001ca0:	0007      	movs	r7, r0
 8001ca2:	20a0      	movs	r0, #160	@ 0xa0
 8001ca4:	0032      	movs	r2, r6
 8001ca6:	2107      	movs	r1, #7
 8001ca8:	05c0      	lsls	r0, r0, #23
 8001caa:	f7ff ffaf 	bl	8001c0c <pin>
 8001cae:	6c2b      	ldr	r3, [r5, #64]	@ 0x40
 8001cb0:	0044      	lsls	r4, r0, #1
 8001cb2:	433c      	orrs	r4, r7
 8001cb4:	4233      	tst	r3, r6
 8001cb6:	d00c      	beq.n	8001cd2 <lamp_output_pins_read_off+0x4e>
 8001cb8:	4b15      	ldr	r3, [pc, #84]	@ (8001d10 <lamp_output_pins_read_off+0x8c>)
 8001cba:	210b      	movs	r1, #11
 8001cbc:	681b      	ldr	r3, [r3, #0]
 8001cbe:	071b      	lsls	r3, r3, #28
 8001cc0:	d500      	bpl.n	8001cc4 <lamp_output_pins_read_off+0x40>
 8001cc2:	3902      	subs	r1, #2
 8001cc4:	20a0      	movs	r0, #160	@ 0xa0
 8001cc6:	2200      	movs	r2, #0
 8001cc8:	05c0      	lsls	r0, r0, #23
 8001cca:	f7ff ff9f 	bl	8001c0c <pin>
 8001cce:	0080      	lsls	r0, r0, #2
 8001cd0:	4304      	orrs	r4, r0
 8001cd2:	2206      	movs	r2, #6
 8001cd4:	6b6b      	ldr	r3, [r5, #52]	@ 0x34
 8001cd6:	4013      	ands	r3, r2
 8001cd8:	4293      	cmp	r3, r2
 8001cda:	d114      	bne.n	8001d06 <lamp_output_pins_read_off+0x82>
 8001cdc:	6deb      	ldr	r3, [r5, #92]	@ 0x5c
 8001cde:	075b      	lsls	r3, r3, #29
 8001ce0:	d111      	bne.n	8001d06 <lamp_output_pins_read_off+0x82>
 8001ce2:	21c0      	movs	r1, #192	@ 0xc0
 8001ce4:	4a0b      	ldr	r2, [pc, #44]	@ (8001d14 <lamp_output_pins_read_off+0x90>)
 8001ce6:	0589      	lsls	r1, r1, #22
 8001ce8:	6813      	ldr	r3, [r2, #0]
 8001cea:	400b      	ands	r3, r1
 8001cec:	428b      	cmp	r3, r1
 8001cee:	d10a      	bne.n	8001d06 <lamp_output_pins_read_off+0x82>
 8001cf0:	68d1      	ldr	r1, [r2, #12]
 8001cf2:	000a      	movs	r2, r1
 8001cf4:	401a      	ands	r2, r3
 8001cf6:	4219      	tst	r1, r3
 8001cf8:	d105      	bne.n	8001d06 <lamp_output_pins_read_off+0x82>
 8001cfa:	2109      	movs	r1, #9
 8001cfc:	4806      	ldr	r0, [pc, #24]	@ (8001d18 <lamp_output_pins_read_off+0x94>)
 8001cfe:	f7ff ff85 	bl	8001c0c <pin>
 8001d02:	00c0      	lsls	r0, r0, #3
 8001d04:	4304      	orrs	r4, r0
 8001d06:	0020      	movs	r0, r4
 8001d08:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8001d0a:	46c0      	nop			@ (mov r8, r8)
 8001d0c:	40021000 	.word	0x40021000
 8001d10:	40010000 	.word	0x40010000
 8001d14:	50000800 	.word	0x50000800
 8001d18:	50000400 	.word	0x50000400

08001d1c <configuration_allows_ir>:
 8001d1c:	4b0f      	ldr	r3, [pc, #60]	@ (8001d5c <configuration_allows_ir+0x40>)
 8001d1e:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 8001d20:	0752      	lsls	r2, r2, #29
 8001d22:	d401      	bmi.n	8001d28 <configuration_allows_ir+0xc>
 8001d24:	2000      	movs	r0, #0
 8001d26:	4770      	bx	lr
 8001d28:	6dda      	ldr	r2, [r3, #92]	@ 0x5c
 8001d2a:	2307      	movs	r3, #7
 8001d2c:	0010      	movs	r0, r2
 8001d2e:	4018      	ands	r0, r3
 8001d30:	421a      	tst	r2, r3
 8001d32:	d1f7      	bne.n	8001d24 <configuration_allows_ir+0x8>
 8001d34:	21c0      	movs	r1, #192	@ 0xc0
 8001d36:	4b0a      	ldr	r3, [pc, #40]	@ (8001d60 <configuration_allows_ir+0x44>)
 8001d38:	0249      	lsls	r1, r1, #9
 8001d3a:	69da      	ldr	r2, [r3, #28]
 8001d3c:	400a      	ands	r2, r1
 8001d3e:	428a      	cmp	r2, r1
 8001d40:	d0f0      	beq.n	8001d24 <configuration_allows_ir+0x8>
 8001d42:	6819      	ldr	r1, [r3, #0]
 8001d44:	4a07      	ldr	r2, [pc, #28]	@ (8001d64 <configuration_allows_ir+0x48>)
 8001d46:	4291      	cmp	r1, r2
 8001d48:	d8ec      	bhi.n	8001d24 <configuration_allows_ir+0x8>
 8001d4a:	68d9      	ldr	r1, [r3, #12]
 8001d4c:	4291      	cmp	r1, r2
 8001d4e:	d8e9      	bhi.n	8001d24 <configuration_allows_ir+0x8>
 8001d50:	6a5b      	ldr	r3, [r3, #36]	@ 0x24
 8001d52:	4a05      	ldr	r2, [pc, #20]	@ (8001d68 <configuration_allows_ir+0x4c>)
 8001d54:	429a      	cmp	r2, r3
 8001d56:	4140      	adcs	r0, r0
 8001d58:	e7e5      	b.n	8001d26 <configuration_allows_ir+0xa>
 8001d5a:	46c0      	nop			@ (mov r8, r8)
 8001d5c:	40021000 	.word	0x40021000
 8001d60:	50000800 	.word	0x50000800
 8001d64:	3fffffff 	.word	0x3fffffff
 8001d68:	0fffffff 	.word	0x0fffffff

08001d6c <unused_alias>:
 8001d6c:	6802      	ldr	r2, [r0, #0]
 8001d6e:	0049      	lsls	r1, r1, #1
 8001d70:	2303      	movs	r3, #3
 8001d72:	40ca      	lsrs	r2, r1
 8001d74:	401a      	ands	r2, r3
 8001d76:	2300      	movs	r3, #0
 8001d78:	2a03      	cmp	r2, #3
 8001d7a:	d105      	bne.n	8001d88 <unused_alias+0x1c>
 8001d7c:	68c3      	ldr	r3, [r0, #12]
 8001d7e:	40cb      	lsrs	r3, r1
 8001d80:	4013      	ands	r3, r2
 8001d82:	425a      	negs	r2, r3
 8001d84:	4153      	adcs	r3, r2
 8001d86:	b2db      	uxtb	r3, r3
 8001d88:	0018      	movs	r0, r3
 8001d8a:	4770      	bx	lr

08001d8c <lamp_board_ir_init>:
 8001d8c:	2100      	movs	r1, #0
 8001d8e:	b510      	push	{r4, lr}
 8001d90:	4c14      	ldr	r4, [pc, #80]	@ (8001de4 <lamp_board_ir_init+0x58>)
 8001d92:	220c      	movs	r2, #12
 8001d94:	1d20      	adds	r0, r4, #4
 8001d96:	7021      	strb	r1, [r4, #0]
 8001d98:	f7fe fa13 	bl	80001c2 <memset>
 8001d9c:	4b12      	ldr	r3, [pc, #72]	@ (8001de8 <lamp_board_ir_init+0x5c>)
 8001d9e:	6dda      	ldr	r2, [r3, #92]	@ 0x5c
 8001da0:	0752      	lsls	r2, r2, #29
 8001da2:	d001      	beq.n	8001da8 <lamp_board_ir_init+0x1c>
 8001da4:	2000      	movs	r0, #0
 8001da6:	bd10      	pop	{r4, pc}
 8001da8:	2204      	movs	r2, #4
 8001daa:	6b59      	ldr	r1, [r3, #52]	@ 0x34
 8001dac:	430a      	orrs	r2, r1
 8001dae:	21c0      	movs	r1, #192	@ 0xc0
 8001db0:	635a      	str	r2, [r3, #52]	@ 0x34
 8001db2:	6b5b      	ldr	r3, [r3, #52]	@ 0x34
 8001db4:	4b0d      	ldr	r3, [pc, #52]	@ (8001dec <lamp_board_ir_init+0x60>)
 8001db6:	0249      	lsls	r1, r1, #9
 8001db8:	69da      	ldr	r2, [r3, #28]
 8001dba:	400a      	ands	r2, r1
 8001dbc:	428a      	cmp	r2, r1
 8001dbe:	d0f1      	beq.n	8001da4 <lamp_board_ir_init+0x18>
 8001dc0:	681a      	ldr	r2, [r3, #0]
 8001dc2:	0092      	lsls	r2, r2, #2
 8001dc4:	0892      	lsrs	r2, r2, #2
 8001dc6:	601a      	str	r2, [r3, #0]
 8001dc8:	68da      	ldr	r2, [r3, #12]
 8001dca:	0092      	lsls	r2, r2, #2
 8001dcc:	0892      	lsrs	r2, r2, #2
 8001dce:	60da      	str	r2, [r3, #12]
 8001dd0:	6a5a      	ldr	r2, [r3, #36]	@ 0x24
 8001dd2:	0112      	lsls	r2, r2, #4
 8001dd4:	0912      	lsrs	r2, r2, #4
 8001dd6:	625a      	str	r2, [r3, #36]	@ 0x24
 8001dd8:	f3bf 8f4f 	dsb	sy
 8001ddc:	f7ff ff9e 	bl	8001d1c <configuration_allows_ir>
 8001de0:	7020      	strb	r0, [r4, #0]
 8001de2:	e7e0      	b.n	8001da6 <lamp_board_ir_init+0x1a>
 8001de4:	200007f8 	.word	0x200007f8
 8001de8:	40021000 	.word	0x40021000
 8001dec:	50000800 	.word	0x50000800

08001df0 <lamp_board_inputs_read>:
 8001df0:	b5f0      	push	{r4, r5, r6, r7, lr}
 8001df2:	b08b      	sub	sp, #44	@ 0x2c
 8001df4:	220d      	movs	r2, #13
 8001df6:	9004      	str	r0, [sp, #16]
 8001df8:	9105      	str	r1, [sp, #20]
 8001dfa:	a806      	add	r0, sp, #24
 8001dfc:	2100      	movs	r1, #0
 8001dfe:	f7fe f9e0 	bl	80001c2 <memset>
 8001e02:	2002      	movs	r0, #2
 8001e04:	4b4f      	ldr	r3, [pc, #316]	@ (8001f44 <lamp_board_inputs_read+0x154>)
 8001e06:	6b59      	ldr	r1, [r3, #52]	@ 0x34
 8001e08:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 8001e0a:	4002      	ands	r2, r0
 8001e0c:	07c9      	lsls	r1, r1, #31
 8001e0e:	d539      	bpl.n	8001e84 <lamp_board_inputs_read+0x94>
 8001e10:	20a0      	movs	r0, #160	@ 0xa0
 8001e12:	2103      	movs	r1, #3
 8001e14:	05c0      	lsls	r0, r0, #23
 8001e16:	6805      	ldr	r5, [r0, #0]
 8001e18:	2400      	movs	r4, #0
 8001e1a:	420d      	tst	r5, r1
 8001e1c:	d104      	bne.n	8001e28 <lamp_board_inputs_read+0x38>
 8001e1e:	68c4      	ldr	r4, [r0, #12]
 8001e20:	400c      	ands	r4, r1
 8001e22:	3c02      	subs	r4, #2
 8001e24:	4261      	negs	r1, r4
 8001e26:	414c      	adcs	r4, r1
 8001e28:	6c1b      	ldr	r3, [r3, #64]	@ 0x40
 8001e2a:	9403      	str	r4, [sp, #12]
 8001e2c:	07db      	lsls	r3, r3, #31
 8001e2e:	d560      	bpl.n	8001ef2 <lamp_board_inputs_read+0x102>
 8001e30:	4b45      	ldr	r3, [pc, #276]	@ (8001f48 <lamp_board_inputs_read+0x158>)
 8001e32:	681b      	ldr	r3, [r3, #0]
 8001e34:	06db      	lsls	r3, r3, #27
 8001e36:	d45c      	bmi.n	8001ef2 <lamp_board_inputs_read+0x102>
 8001e38:	23a0      	movs	r3, #160	@ 0xa0
 8001e3a:	21c0      	movs	r1, #192	@ 0xc0
 8001e3c:	05db      	lsls	r3, r3, #23
 8001e3e:	6818      	ldr	r0, [r3, #0]
 8001e40:	0489      	lsls	r1, r1, #18
 8001e42:	4208      	tst	r0, r1
 8001e44:	d155      	bne.n	8001ef2 <lamp_board_inputs_read+0x102>
 8001e46:	68db      	ldr	r3, [r3, #12]
 8001e48:	400b      	ands	r3, r1
 8001e4a:	21fe      	movs	r1, #254	@ 0xfe
 8001e4c:	0609      	lsls	r1, r1, #24
 8001e4e:	185b      	adds	r3, r3, r1
 8001e50:	4259      	negs	r1, r3
 8001e52:	414b      	adcs	r3, r1
 8001e54:	b2db      	uxtb	r3, r3
 8001e56:	9300      	str	r3, [sp, #0]
 8001e58:	2a00      	cmp	r2, #0
 8001e5a:	d14c      	bne.n	8001ef6 <lamp_board_inputs_read+0x106>
 8001e5c:	23a0      	movs	r3, #160	@ 0xa0
 8001e5e:	0016      	movs	r6, r2
 8001e60:	05db      	lsls	r3, r3, #23
 8001e62:	691b      	ldr	r3, [r3, #16]
 8001e64:	9900      	ldr	r1, [sp, #0]
 8001e66:	2900      	cmp	r1, #0
 8001e68:	d001      	beq.n	8001e6e <lamp_board_inputs_read+0x7e>
 8001e6a:	04d9      	lsls	r1, r3, #19
 8001e6c:	0fc9      	lsrs	r1, r1, #31
 8001e6e:	2001      	movs	r0, #1
 8001e70:	4023      	ands	r3, r4
 8001e72:	4001      	ands	r1, r0
 8001e74:	4003      	ands	r3, r0
 8001e76:	1e37      	subs	r7, r6, #0
 8001e78:	9102      	str	r1, [sp, #8]
 8001e7a:	9301      	str	r3, [sp, #4]
 8001e7c:	d00b      	beq.n	8001e96 <lamp_board_inputs_read+0xa6>
 8001e7e:	4390      	bics	r0, r2
 8001e80:	0007      	movs	r7, r0
 8001e82:	e008      	b.n	8001e96 <lamp_board_inputs_read+0xa6>
 8001e84:	2a00      	cmp	r2, #0
 8001e86:	d131      	bne.n	8001eec <lamp_board_inputs_read+0xfc>
 8001e88:	2300      	movs	r3, #0
 8001e8a:	001e      	movs	r6, r3
 8001e8c:	001f      	movs	r7, r3
 8001e8e:	9300      	str	r3, [sp, #0]
 8001e90:	9303      	str	r3, [sp, #12]
 8001e92:	9302      	str	r3, [sp, #8]
 8001e94:	9301      	str	r3, [sp, #4]
 8001e96:	2500      	movs	r5, #0
 8001e98:	4b2c      	ldr	r3, [pc, #176]	@ (8001f4c <lamp_board_inputs_read+0x15c>)
 8001e9a:	002c      	movs	r4, r5
 8001e9c:	7819      	ldrb	r1, [r3, #0]
 8001e9e:	42a9      	cmp	r1, r5
 8001ea0:	d009      	beq.n	8001eb6 <lamp_board_inputs_read+0xc6>
 8001ea2:	f7ff ff3b 	bl	8001d1c <configuration_allows_ir>
 8001ea6:	0001      	movs	r1, r0
 8001ea8:	42a8      	cmp	r0, r5
 8001eaa:	d004      	beq.n	8001eb6 <lamp_board_inputs_read+0xc6>
 8001eac:	4b28      	ldr	r3, [pc, #160]	@ (8001f50 <lamp_board_inputs_read+0x160>)
 8001eae:	3501      	adds	r5, #1
 8001eb0:	691c      	ldr	r4, [r3, #16]
 8001eb2:	0424      	lsls	r4, r4, #16
 8001eb4:	0fe4      	lsrs	r4, r4, #31
 8001eb6:	0022      	movs	r2, r4
 8001eb8:	9b05      	ldr	r3, [sp, #20]
 8001eba:	4826      	ldr	r0, [pc, #152]	@ (8001f54 <lamp_board_inputs_read+0x164>)
 8001ebc:	f000 f84e 	bl	8001f5c <lamp_ir_filter_update>
 8001ec0:	9b00      	ldr	r3, [sp, #0]
 8001ec2:	a906      	add	r1, sp, #24
 8001ec4:	700b      	strb	r3, [r1, #0]
 8001ec6:	9b03      	ldr	r3, [sp, #12]
 8001ec8:	7308      	strb	r0, [r1, #12]
 8001eca:	704b      	strb	r3, [r1, #1]
 8001ecc:	9b02      	ldr	r3, [sp, #8]
 8001ece:	220d      	movs	r2, #13
 8001ed0:	70cb      	strb	r3, [r1, #3]
 8001ed2:	9b01      	ldr	r3, [sp, #4]
 8001ed4:	9804      	ldr	r0, [sp, #16]
 8001ed6:	708e      	strb	r6, [r1, #2]
 8001ed8:	710b      	strb	r3, [r1, #4]
 8001eda:	714f      	strb	r7, [r1, #5]
 8001edc:	718d      	strb	r5, [r1, #6]
 8001ede:	71cc      	strb	r4, [r1, #7]
 8001ee0:	72cb      	strb	r3, [r1, #11]
 8001ee2:	f7fe f965 	bl	80001b0 <memcpy>
 8001ee6:	9804      	ldr	r0, [sp, #16]
 8001ee8:	b00b      	add	sp, #44	@ 0x2c
 8001eea:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8001eec:	4b1a      	ldr	r3, [pc, #104]	@ (8001f58 <lamp_board_inputs_read+0x168>)
 8001eee:	691b      	ldr	r3, [r3, #16]
 8001ef0:	e7ca      	b.n	8001e88 <lamp_board_inputs_read+0x98>
 8001ef2:	2300      	movs	r3, #0
 8001ef4:	e7af      	b.n	8001e56 <lamp_board_inputs_read+0x66>
 8001ef6:	2303      	movs	r3, #3
 8001ef8:	4d17      	ldr	r5, [pc, #92]	@ (8001f58 <lamp_board_inputs_read+0x168>)
 8001efa:	682a      	ldr	r2, [r5, #0]
 8001efc:	421a      	tst	r2, r3
 8001efe:	d103      	bne.n	8001f08 <lamp_board_inputs_read+0x118>
 8001f00:	68ee      	ldr	r6, [r5, #12]
 8001f02:	401e      	ands	r6, r3
 8001f04:	2e01      	cmp	r6, #1
 8001f06:	d005      	beq.n	8001f14 <lamp_board_inputs_read+0x124>
 8001f08:	23a0      	movs	r3, #160	@ 0xa0
 8001f0a:	05db      	lsls	r3, r3, #23
 8001f0c:	691b      	ldr	r3, [r3, #16]
 8001f0e:	2600      	movs	r6, #0
 8001f10:	692a      	ldr	r2, [r5, #16]
 8001f12:	e7a7      	b.n	8001e64 <lamp_board_inputs_read+0x74>
 8001f14:	0031      	movs	r1, r6
 8001f16:	0028      	movs	r0, r5
 8001f18:	27a0      	movs	r7, #160	@ 0xa0
 8001f1a:	f7ff ff27 	bl	8001d6c <unused_alias>
 8001f1e:	05ff      	lsls	r7, r7, #23
 8001f20:	2800      	cmp	r0, #0
 8001f22:	d101      	bne.n	8001f28 <lamp_board_inputs_read+0x138>
 8001f24:	693b      	ldr	r3, [r7, #16]
 8001f26:	e7f2      	b.n	8001f0e <lamp_board_inputs_read+0x11e>
 8001f28:	2102      	movs	r1, #2
 8001f2a:	0028      	movs	r0, r5
 8001f2c:	f7ff ff1e 	bl	8001d6c <unused_alias>
 8001f30:	2800      	cmp	r0, #0
 8001f32:	d0f7      	beq.n	8001f24 <lamp_board_inputs_read+0x134>
 8001f34:	2108      	movs	r1, #8
 8001f36:	0038      	movs	r0, r7
 8001f38:	f7ff ff18 	bl	8001d6c <unused_alias>
 8001f3c:	693b      	ldr	r3, [r7, #16]
 8001f3e:	2800      	cmp	r0, #0
 8001f40:	d0e5      	beq.n	8001f0e <lamp_board_inputs_read+0x11e>
 8001f42:	e7e5      	b.n	8001f10 <lamp_board_inputs_read+0x120>
 8001f44:	40021000 	.word	0x40021000
 8001f48:	40010000 	.word	0x40010000
 8001f4c:	200007f8 	.word	0x200007f8
 8001f50:	50000800 	.word	0x50000800
 8001f54:	200007fc 	.word	0x200007fc
 8001f58:	50000400 	.word	0x50000400

08001f5c <lamp_ir_filter_update>:
 8001f5c:	b530      	push	{r4, r5, lr}
 8001f5e:	2800      	cmp	r0, #0
 8001f60:	d101      	bne.n	8001f66 <lamp_ir_filter_update+0xa>
 8001f62:	2000      	movs	r0, #0
 8001f64:	bd30      	pop	{r4, r5, pc}
 8001f66:	2400      	movs	r4, #0
 8001f68:	7845      	ldrb	r5, [r0, #1]
 8001f6a:	42a5      	cmp	r5, r4
 8001f6c:	d005      	beq.n	8001f7a <lamp_ir_filter_update+0x1e>
 8001f6e:	6885      	ldr	r5, [r0, #8]
 8001f70:	3405      	adds	r4, #5
 8001f72:	1b5d      	subs	r5, r3, r5
 8001f74:	42ac      	cmp	r4, r5
 8001f76:	41a4      	sbcs	r4, r4
 8001f78:	4264      	negs	r4, r4
 8001f7a:	2501      	movs	r5, #1
 8001f7c:	6083      	str	r3, [r0, #8]
 8001f7e:	7045      	strb	r5, [r0, #1]
 8001f80:	2900      	cmp	r1, #0
 8001f82:	d102      	bne.n	8001f8a <lamp_ir_filter_update+0x2e>
 8001f84:	2300      	movs	r3, #0
 8001f86:	7003      	strb	r3, [r0, #0]
 8001f88:	e7eb      	b.n	8001f62 <lamp_ir_filter_update+0x6>
 8001f8a:	2a00      	cmp	r2, #0
 8001f8c:	d0fa      	beq.n	8001f84 <lamp_ir_filter_update+0x28>
 8001f8e:	2c00      	cmp	r4, #0
 8001f90:	d102      	bne.n	8001f98 <lamp_ir_filter_update+0x3c>
 8001f92:	7802      	ldrb	r2, [r0, #0]
 8001f94:	42a2      	cmp	r2, r4
 8001f96:	d103      	bne.n	8001fa0 <lamp_ir_filter_update+0x44>
 8001f98:	2201      	movs	r2, #1
 8001f9a:	6043      	str	r3, [r0, #4]
 8001f9c:	7002      	strb	r2, [r0, #0]
 8001f9e:	e7e0      	b.n	8001f62 <lamp_ir_filter_update+0x6>
 8001fa0:	6842      	ldr	r2, [r0, #4]
 8001fa2:	2009      	movs	r0, #9
 8001fa4:	1a9b      	subs	r3, r3, r2
 8001fa6:	4298      	cmp	r0, r3
 8001fa8:	4180      	sbcs	r0, r0
 8001faa:	4240      	negs	r0, r0
 8001fac:	e7da      	b.n	8001f64 <lamp_ir_filter_update+0x8>
	...

08001fb0 <clock_ok>:
 8001fb0:	21f0      	movs	r1, #240	@ 0xf0
 8001fb2:	4a08      	ldr	r2, [pc, #32]	@ (8001fd4 <clock_ok+0x24>)
 8001fb4:	0189      	lsls	r1, r1, #6
 8001fb6:	6813      	ldr	r3, [r2, #0]
 8001fb8:	2000      	movs	r0, #0
 8001fba:	400b      	ands	r3, r1
 8001fbc:	2180      	movs	r1, #128	@ 0x80
 8001fbe:	00c9      	lsls	r1, r1, #3
 8001fc0:	428b      	cmp	r3, r1
 8001fc2:	d105      	bne.n	8001fd0 <clock_ok+0x20>
 8001fc4:	4b04      	ldr	r3, [pc, #16]	@ (8001fd8 <clock_ok+0x28>)
 8001fc6:	6890      	ldr	r0, [r2, #8]
 8001fc8:	4018      	ands	r0, r3
 8001fca:	4243      	negs	r3, r0
 8001fcc:	4158      	adcs	r0, r3
 8001fce:	b2c0      	uxtb	r0, r0
 8001fd0:	4770      	bx	lr
 8001fd2:	46c0      	nop			@ (mov r8, r8)
 8001fd4:	40021000 	.word	0x40021000
 8001fd8:	00007f38 	.word	0x00007f38

08001fdc <config_ok>:
 8001fdc:	b510      	push	{r4, lr}
 8001fde:	f7ff ffe7 	bl	8001fb0 <clock_ok>
 8001fe2:	2800      	cmp	r0, #0
 8001fe4:	d101      	bne.n	8001fea <config_ok+0xe>
 8001fe6:	2000      	movs	r0, #0
 8001fe8:	bd10      	pop	{r4, pc}
 8001fea:	2280      	movs	r2, #128	@ 0x80
 8001fec:	4b18      	ldr	r3, [pc, #96]	@ (8002050 <config_ok+0x74>)
 8001fee:	0352      	lsls	r2, r2, #13
 8001ff0:	6c19      	ldr	r1, [r3, #64]	@ 0x40
 8001ff2:	4211      	tst	r1, r2
 8001ff4:	d0f7      	beq.n	8001fe6 <config_ok+0xa>
 8001ff6:	6b19      	ldr	r1, [r3, #48]	@ 0x30
 8001ff8:	4211      	tst	r1, r2
 8001ffa:	d1f4      	bne.n	8001fe6 <config_ok+0xa>
 8001ffc:	6b5b      	ldr	r3, [r3, #52]	@ 0x34
 8001ffe:	07db      	lsls	r3, r3, #31
 8002000:	d5f1      	bpl.n	8001fe6 <config_ok+0xa>
 8002002:	23a0      	movs	r3, #160	@ 0xa0
 8002004:	05db      	lsls	r3, r3, #23
 8002006:	681a      	ldr	r2, [r3, #0]
 8002008:	4912      	ldr	r1, [pc, #72]	@ (8002054 <config_ok+0x78>)
 800200a:	400a      	ands	r2, r1
 800200c:	428a      	cmp	r2, r1
 800200e:	d1ea      	bne.n	8001fe6 <config_ok+0xa>
 8002010:	68d9      	ldr	r1, [r3, #12]
 8002012:	4211      	tst	r1, r2
 8002014:	d1e7      	bne.n	8001fe6 <config_ok+0xa>
 8002016:	69da      	ldr	r2, [r3, #28]
 8002018:	03d2      	lsls	r2, r2, #15
 800201a:	d503      	bpl.n	8002024 <config_ok+0x48>
 800201c:	69da      	ldr	r2, [r3, #28]
 800201e:	2362      	movs	r3, #98	@ 0x62
 8002020:	421a      	tst	r2, r3
 8002022:	d1e0      	bne.n	8001fe6 <config_ok+0xa>
 8002024:	4b0c      	ldr	r3, [pc, #48]	@ (8002058 <config_ok+0x7c>)
 8002026:	68da      	ldr	r2, [r3, #12]
 8002028:	2a00      	cmp	r2, #0
 800202a:	d1dc      	bne.n	8001fe6 <config_ok+0xa>
 800202c:	2280      	movs	r2, #128	@ 0x80
 800202e:	6919      	ldr	r1, [r3, #16]
 8002030:	05d2      	lsls	r2, r2, #23
 8002032:	4291      	cmp	r1, r2
 8002034:	d1d7      	bne.n	8001fe6 <config_ok+0xa>
 8002036:	695a      	ldr	r2, [r3, #20]
 8002038:	2a07      	cmp	r2, #7
 800203a:	d1d4      	bne.n	8001fe6 <config_ok+0xa>
 800203c:	4a07      	ldr	r2, [pc, #28]	@ (800205c <config_ok+0x80>)
 800203e:	6811      	ldr	r1, [r2, #0]
 8002040:	2280      	movs	r2, #128	@ 0x80
 8002042:	03d2      	lsls	r2, r2, #15
 8002044:	4291      	cmp	r1, r2
 8002046:	d1ce      	bne.n	8001fe6 <config_ok+0xa>
 8002048:	6898      	ldr	r0, [r3, #8]
 800204a:	00c0      	lsls	r0, r0, #3
 800204c:	0fc0      	lsrs	r0, r0, #31
 800204e:	e7cb      	b.n	8001fe8 <config_ok+0xc>
 8002050:	40021000 	.word	0x40021000
 8002054:	00003c0c 	.word	0x00003c0c
 8002058:	40012400 	.word	0x40012400
 800205c:	40012708 	.word	0x40012708

08002060 <fail>:
 8002060:	2200      	movs	r2, #0
 8002062:	4b08      	ldr	r3, [pc, #32]	@ (8002084 <fail+0x24>)
 8002064:	701a      	strb	r2, [r3, #0]
 8002066:	3209      	adds	r2, #9
 8002068:	705a      	strb	r2, [r3, #1]
 800206a:	4b07      	ldr	r3, [pc, #28]	@ (8002088 <fail+0x28>)
 800206c:	6c1b      	ldr	r3, [r3, #64]	@ 0x40
 800206e:	02db      	lsls	r3, r3, #11
 8002070:	d507      	bpl.n	8002082 <fail+0x22>
 8002072:	4b06      	ldr	r3, [pc, #24]	@ (800208c <fail+0x2c>)
 8002074:	689a      	ldr	r2, [r3, #8]
 8002076:	0752      	lsls	r2, r2, #29
 8002078:	d503      	bpl.n	8002082 <fail+0x22>
 800207a:	2210      	movs	r2, #16
 800207c:	6899      	ldr	r1, [r3, #8]
 800207e:	430a      	orrs	r2, r1
 8002080:	609a      	str	r2, [r3, #8]
 8002082:	4770      	bx	lr
 8002084:	20000808 	.word	0x20000808
 8002088:	40021000 	.word	0x40021000
 800208c:	40012400 	.word	0x40012400

08002090 <lamp_adc_init>:
 8002090:	b570      	push	{r4, r5, r6, lr}
 8002092:	2600      	movs	r6, #0
 8002094:	0005      	movs	r5, r0
 8002096:	4c26      	ldr	r4, [pc, #152]	@ (8002130 <lamp_adc_init+0xa0>)
 8002098:	2214      	movs	r2, #20
 800209a:	0031      	movs	r1, r6
 800209c:	1d20      	adds	r0, r4, #4
 800209e:	7026      	strb	r6, [r4, #0]
 80020a0:	f7fe f88f 	bl	80001c2 <memset>
 80020a4:	61a6      	str	r6, [r4, #24]
 80020a6:	61e5      	str	r5, [r4, #28]
 80020a8:	7066      	strb	r6, [r4, #1]
 80020aa:	f7ff ff81 	bl	8001fb0 <clock_ok>
 80020ae:	42b0      	cmp	r0, r6
 80020b0:	d008      	beq.n	80020c4 <lamp_adc_init+0x34>
 80020b2:	23a0      	movs	r3, #160	@ 0xa0
 80020b4:	05db      	lsls	r3, r3, #23
 80020b6:	69da      	ldr	r2, [r3, #28]
 80020b8:	03d2      	lsls	r2, r2, #15
 80020ba:	d506      	bpl.n	80020ca <lamp_adc_init+0x3a>
 80020bc:	69da      	ldr	r2, [r3, #28]
 80020be:	2362      	movs	r3, #98	@ 0x62
 80020c0:	421a      	tst	r2, r3
 80020c2:	d002      	beq.n	80020ca <lamp_adc_init+0x3a>
 80020c4:	f7ff ffcc 	bl	8002060 <fail>
 80020c8:	bd70      	pop	{r4, r5, r6, pc}
 80020ca:	2101      	movs	r1, #1
 80020cc:	4b19      	ldr	r3, [pc, #100]	@ (8002134 <lamp_adc_init+0xa4>)
 80020ce:	481a      	ldr	r0, [pc, #104]	@ (8002138 <lamp_adc_init+0xa8>)
 80020d0:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 80020d2:	430a      	orrs	r2, r1
 80020d4:	635a      	str	r2, [r3, #52]	@ 0x34
 80020d6:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 80020d8:	22a0      	movs	r2, #160	@ 0xa0
 80020da:	05d2      	lsls	r2, r2, #23
 80020dc:	6816      	ldr	r6, [r2, #0]
 80020de:	4330      	orrs	r0, r6
 80020e0:	6010      	str	r0, [r2, #0]
 80020e2:	68d0      	ldr	r0, [r2, #12]
 80020e4:	4e15      	ldr	r6, [pc, #84]	@ (800213c <lamp_adc_init+0xac>)
 80020e6:	4030      	ands	r0, r6
 80020e8:	60d0      	str	r0, [r2, #12]
 80020ea:	2280      	movs	r2, #128	@ 0x80
 80020ec:	6c18      	ldr	r0, [r3, #64]	@ 0x40
 80020ee:	0352      	lsls	r2, r2, #13
 80020f0:	4310      	orrs	r0, r2
 80020f2:	6418      	str	r0, [r3, #64]	@ 0x40
 80020f4:	6b18      	ldr	r0, [r3, #48]	@ 0x30
 80020f6:	4302      	orrs	r2, r0
 80020f8:	631a      	str	r2, [r3, #48]	@ 0x30
 80020fa:	6b1a      	ldr	r2, [r3, #48]	@ 0x30
 80020fc:	4810      	ldr	r0, [pc, #64]	@ (8002140 <lamp_adc_init+0xb0>)
 80020fe:	6b1a      	ldr	r2, [r3, #48]	@ 0x30
 8002100:	4002      	ands	r2, r0
 8002102:	631a      	str	r2, [r3, #48]	@ 0x30
 8002104:	2200      	movs	r2, #0
 8002106:	6b1b      	ldr	r3, [r3, #48]	@ 0x30
 8002108:	4b0e      	ldr	r3, [pc, #56]	@ (8002144 <lamp_adc_init+0xb4>)
 800210a:	2080      	movs	r0, #128	@ 0x80
 800210c:	605a      	str	r2, [r3, #4]
 800210e:	60da      	str	r2, [r3, #12]
 8002110:	2280      	movs	r2, #128	@ 0x80
 8002112:	05d2      	lsls	r2, r2, #23
 8002114:	611a      	str	r2, [r3, #16]
 8002116:	2207      	movs	r2, #7
 8002118:	615a      	str	r2, [r3, #20]
 800211a:	4a0b      	ldr	r2, [pc, #44]	@ (8002148 <lamp_adc_init+0xb8>)
 800211c:	03c0      	lsls	r0, r0, #15
 800211e:	6010      	str	r0, [r2, #0]
 8002120:	4a0a      	ldr	r2, [pc, #40]	@ (800214c <lamp_adc_init+0xbc>)
 8002122:	601a      	str	r2, [r3, #0]
 8002124:	2280      	movs	r2, #128	@ 0x80
 8002126:	0552      	lsls	r2, r2, #21
 8002128:	609a      	str	r2, [r3, #8]
 800212a:	7061      	strb	r1, [r4, #1]
 800212c:	6225      	str	r5, [r4, #32]
 800212e:	e7cb      	b.n	80020c8 <lamp_adc_init+0x38>
 8002130:	20000808 	.word	0x20000808
 8002134:	40021000 	.word	0x40021000
 8002138:	00003c0c 	.word	0x00003c0c
 800213c:	ffffc3f3 	.word	0xffffc3f3
 8002140:	ffefffff 	.word	0xffefffff
 8002144:	40012400 	.word	0x40012400
 8002148:	40012708 	.word	0x40012708
 800214c:	0000281d 	.word	0x0000281d

08002150 <lamp_adc_poll>:
 8002150:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8002152:	4c5c      	ldr	r4, [pc, #368]	@ (80022c4 <lamp_adc_poll+0x174>)
 8002154:	0005      	movs	r5, r0
 8002156:	7866      	ldrb	r6, [r4, #1]
 8002158:	2e00      	cmp	r6, #0
 800215a:	d048      	beq.n	80021ee <lamp_adc_poll+0x9e>
 800215c:	2e09      	cmp	r6, #9
 800215e:	d046      	beq.n	80021ee <lamp_adc_poll+0x9e>
 8002160:	69e3      	ldr	r3, [r4, #28]
 8002162:	1ac3      	subs	r3, r0, r3
 8002164:	2b05      	cmp	r3, #5
 8002166:	d803      	bhi.n	8002170 <lamp_adc_poll+0x20>
 8002168:	f7ff ff38 	bl	8001fdc <config_ok>
 800216c:	2800      	cmp	r0, #0
 800216e:	d102      	bne.n	8002176 <lamp_adc_poll+0x26>
 8002170:	f7ff ff76 	bl	8002060 <fail>
 8002174:	e03b      	b.n	80021ee <lamp_adc_poll+0x9e>
 8002176:	4a54      	ldr	r2, [pc, #336]	@ (80022c8 <lamp_adc_poll+0x178>)
 8002178:	61e5      	str	r5, [r4, #28]
 800217a:	6813      	ldr	r3, [r2, #0]
 800217c:	06db      	lsls	r3, r3, #27
 800217e:	d4f7      	bmi.n	8002170 <lamp_adc_poll+0x20>
 8002180:	6a23      	ldr	r3, [r4, #32]
 8002182:	1aeb      	subs	r3, r5, r3
 8002184:	2e07      	cmp	r6, #7
 8002186:	d805      	bhi.n	8002194 <lamp_adc_poll+0x44>
 8002188:	21d4      	movs	r1, #212	@ 0xd4
 800218a:	40f1      	lsrs	r1, r6
 800218c:	07c9      	lsls	r1, r1, #31
 800218e:	d501      	bpl.n	8002194 <lamp_adc_poll+0x44>
 8002190:	2b05      	cmp	r3, #5
 8002192:	d8ed      	bhi.n	8002170 <lamp_adc_poll+0x20>
 8002194:	1e70      	subs	r0, r6, #1
 8002196:	2807      	cmp	r0, #7
 8002198:	d8ea      	bhi.n	8002170 <lamp_adc_poll+0x20>
 800219a:	f003 fa9f 	bl	80056dc <__gnu_thumb1_case_uqi>
 800219e:	0f04      	.short	0x0f04
 80021a0:	3d291d14 	.word	0x3d291d14
 80021a4:	8f52      	.short	0x8f52
 80021a6:	2b01      	cmp	r3, #1
 80021a8:	d921      	bls.n	80021ee <lamp_adc_poll+0x9e>
 80021aa:	2380      	movs	r3, #128	@ 0x80
 80021ac:	6891      	ldr	r1, [r2, #8]
 80021ae:	061b      	lsls	r3, r3, #24
 80021b0:	430b      	orrs	r3, r1
 80021b2:	6093      	str	r3, [r2, #8]
 80021b4:	2302      	movs	r3, #2
 80021b6:	7063      	strb	r3, [r4, #1]
 80021b8:	6225      	str	r5, [r4, #32]
 80021ba:	e018      	b.n	80021ee <lamp_adc_poll+0x9e>
 80021bc:	6893      	ldr	r3, [r2, #8]
 80021be:	2b00      	cmp	r3, #0
 80021c0:	db15      	blt.n	80021ee <lamp_adc_poll+0x9e>
 80021c2:	2303      	movs	r3, #3
 80021c4:	e7f7      	b.n	80021b6 <lamp_adc_poll+0x66>
 80021c6:	2b01      	cmp	r3, #1
 80021c8:	d911      	bls.n	80021ee <lamp_adc_poll+0x9e>
 80021ca:	2301      	movs	r3, #1
 80021cc:	6013      	str	r3, [r2, #0]
 80021ce:	6891      	ldr	r1, [r2, #8]
 80021d0:	430b      	orrs	r3, r1
 80021d2:	6093      	str	r3, [r2, #8]
 80021d4:	2304      	movs	r3, #4
 80021d6:	e7ee      	b.n	80021b6 <lamp_adc_poll+0x66>
 80021d8:	2301      	movs	r3, #1
 80021da:	6811      	ldr	r1, [r2, #0]
 80021dc:	4219      	tst	r1, r3
 80021de:	d006      	beq.n	80021ee <lamp_adc_poll+0x9e>
 80021e0:	6892      	ldr	r2, [r2, #8]
 80021e2:	421a      	tst	r2, r3
 80021e4:	d003      	beq.n	80021ee <lamp_adc_poll+0x9e>
 80021e6:	2205      	movs	r2, #5
 80021e8:	4b36      	ldr	r3, [pc, #216]	@ (80022c4 <lamp_adc_poll+0x174>)
 80021ea:	705a      	strb	r2, [r3, #1]
 80021ec:	621d      	str	r5, [r3, #32]
 80021ee:	bdf7      	pop	{r0, r1, r2, r4, r5, r6, r7, pc}
 80021f0:	6891      	ldr	r1, [r2, #8]
 80021f2:	4b36      	ldr	r3, [pc, #216]	@ (80022cc <lamp_adc_poll+0x17c>)
 80021f4:	4219      	tst	r1, r3
 80021f6:	d1bb      	bne.n	8002170 <lamp_adc_poll+0x20>
 80021f8:	6893      	ldr	r3, [r2, #8]
 80021fa:	07db      	lsls	r3, r3, #31
 80021fc:	d5b8      	bpl.n	8002170 <lamp_adc_poll+0x20>
 80021fe:	69a3      	ldr	r3, [r4, #24]
 8002200:	2b00      	cmp	r3, #0
 8002202:	d100      	bne.n	8002206 <lamp_adc_poll+0xb6>
 8002204:	6265      	str	r5, [r4, #36]	@ 0x24
 8002206:	4932      	ldr	r1, [pc, #200]	@ (80022d0 <lamp_adc_poll+0x180>)
 8002208:	6011      	str	r1, [r2, #0]
 800220a:	4932      	ldr	r1, [pc, #200]	@ (80022d4 <lamp_adc_poll+0x184>)
 800220c:	5cc9      	ldrb	r1, [r1, r3]
 800220e:	2301      	movs	r3, #1
 8002210:	408b      	lsls	r3, r1
 8002212:	6293      	str	r3, [r2, #40]	@ 0x28
 8002214:	2306      	movs	r3, #6
 8002216:	e7ce      	b.n	80021b6 <lamp_adc_poll+0x66>
 8002218:	4b2e      	ldr	r3, [pc, #184]	@ (80022d4 <lamp_adc_poll+0x184>)
 800221a:	69a1      	ldr	r1, [r4, #24]
 800221c:	6a90      	ldr	r0, [r2, #40]	@ 0x28
 800221e:	5c59      	ldrb	r1, [r3, r1]
 8002220:	2301      	movs	r3, #1
 8002222:	001e      	movs	r6, r3
 8002224:	408e      	lsls	r6, r1
 8002226:	42b0      	cmp	r0, r6
 8002228:	d1a2      	bne.n	8002170 <lamp_adc_poll+0x20>
 800222a:	6891      	ldr	r1, [r2, #8]
 800222c:	4219      	tst	r1, r3
 800222e:	d09f      	beq.n	8002170 <lamp_adc_poll+0x20>
 8002230:	6813      	ldr	r3, [r2, #0]
 8002232:	049b      	lsls	r3, r3, #18
 8002234:	d5db      	bpl.n	80021ee <lamp_adc_poll+0x9e>
 8002236:	2304      	movs	r3, #4
 8002238:	6891      	ldr	r1, [r2, #8]
 800223a:	430b      	orrs	r3, r1
 800223c:	6093      	str	r3, [r2, #8]
 800223e:	2307      	movs	r3, #7
 8002240:	e7b9      	b.n	80021b6 <lamp_adc_poll+0x66>
 8002242:	2701      	movs	r7, #1
 8002244:	69a1      	ldr	r1, [r4, #24]
 8002246:	4b23      	ldr	r3, [pc, #140]	@ (80022d4 <lamp_adc_poll+0x184>)
 8002248:	6a96      	ldr	r6, [r2, #40]	@ 0x28
 800224a:	5c58      	ldrb	r0, [r3, r1]
 800224c:	4087      	lsls	r7, r0
 800224e:	42be      	cmp	r6, r7
 8002250:	d000      	beq.n	8002254 <lamp_adc_poll+0x104>
 8002252:	e78d      	b.n	8002170 <lamp_adc_poll+0x20>
 8002254:	2301      	movs	r3, #1
 8002256:	6890      	ldr	r0, [r2, #8]
 8002258:	4218      	tst	r0, r3
 800225a:	d100      	bne.n	800225e <lamp_adc_poll+0x10e>
 800225c:	e788      	b.n	8002170 <lamp_adc_poll+0x20>
 800225e:	200c      	movs	r0, #12
 8002260:	6816      	ldr	r6, [r2, #0]
 8002262:	4006      	ands	r6, r0
 8002264:	4286      	cmp	r6, r0
 8002266:	d1c2      	bne.n	80021ee <lamp_adc_poll+0x9e>
 8002268:	6897      	ldr	r7, [r2, #8]
 800226a:	3808      	subs	r0, #8
 800226c:	003b      	movs	r3, r7
 800226e:	4003      	ands	r3, r0
 8002270:	9301      	str	r3, [sp, #4]
 8002272:	4207      	tst	r7, r0
 8002274:	d1bb      	bne.n	80021ee <lamp_adc_poll+0x9e>
 8002276:	6c10      	ldr	r0, [r2, #64]	@ 0x40
 8002278:	004f      	lsls	r7, r1, #1
 800227a:	0500      	lsls	r0, r0, #20
 800227c:	19e7      	adds	r7, r4, r7
 800227e:	0d00      	lsrs	r0, r0, #20
 8002280:	3101      	adds	r1, #1
 8002282:	8538      	strh	r0, [r7, #40]	@ 0x28
 8002284:	6016      	str	r6, [r2, #0]
 8002286:	61a1      	str	r1, [r4, #24]
 8002288:	2904      	cmp	r1, #4
 800228a:	d1ac      	bne.n	80021e6 <lamp_adc_poll+0x96>
 800228c:	6a61      	ldr	r1, [r4, #36]	@ 0x24
 800228e:	1a6a      	subs	r2, r5, r1
 8002290:	2a14      	cmp	r2, #20
 8002292:	d900      	bls.n	8002296 <lamp_adc_poll+0x146>
 8002294:	e76c      	b.n	8002170 <lamp_adc_poll+0x20>
 8002296:	8d23      	ldrh	r3, [r4, #40]	@ 0x28
 8002298:	6962      	ldr	r2, [r4, #20]
 800229a:	80a3      	strh	r3, [r4, #4]
 800229c:	2301      	movs	r3, #1
 800229e:	8d67      	ldrh	r7, [r4, #42]	@ 0x2a
 80022a0:	8da6      	ldrh	r6, [r4, #44]	@ 0x2c
 80022a2:	8de0      	ldrh	r0, [r4, #46]	@ 0x2e
 80022a4:	7023      	strb	r3, [r4, #0]
 80022a6:	9b01      	ldr	r3, [sp, #4]
 80022a8:	3201      	adds	r2, #1
 80022aa:	61a3      	str	r3, [r4, #24]
 80022ac:	80e7      	strh	r7, [r4, #6]
 80022ae:	2308      	movs	r3, #8
 80022b0:	8126      	strh	r6, [r4, #8]
 80022b2:	8160      	strh	r0, [r4, #10]
 80022b4:	60e1      	str	r1, [r4, #12]
 80022b6:	6125      	str	r5, [r4, #16]
 80022b8:	6162      	str	r2, [r4, #20]
 80022ba:	e77c      	b.n	80021b6 <lamp_adc_poll+0x66>
 80022bc:	2b01      	cmp	r3, #1
 80022be:	d900      	bls.n	80022c2 <lamp_adc_poll+0x172>
 80022c0:	e791      	b.n	80021e6 <lamp_adc_poll+0x96>
 80022c2:	e794      	b.n	80021ee <lamp_adc_poll+0x9e>
 80022c4:	20000808 	.word	0x20000808
 80022c8:	40012400 	.word	0x40012400
 80022cc:	80000014 	.word	0x80000014
 80022d0:	0000201c 	.word	0x0000201c
 80022d4:	08005b7a 	.word	0x08005b7a

080022d8 <lamp_adc_get_frame>:
 80022d8:	b570      	push	{r4, r5, r6, lr}
 80022da:	0006      	movs	r6, r0
 80022dc:	1e0d      	subs	r5, r1, #0
 80022de:	d101      	bne.n	80022e4 <lamp_adc_get_frame+0xc>
 80022e0:	2000      	movs	r0, #0
 80022e2:	bd70      	pop	{r4, r5, r6, pc}
 80022e4:	4c10      	ldr	r4, [pc, #64]	@ (8002328 <lamp_adc_get_frame+0x50>)
 80022e6:	7820      	ldrb	r0, [r4, #0]
 80022e8:	2800      	cmp	r0, #0
 80022ea:	d0fa      	beq.n	80022e2 <lamp_adc_get_frame+0xa>
 80022ec:	7863      	ldrb	r3, [r4, #1]
 80022ee:	2b09      	cmp	r3, #9
 80022f0:	d0f6      	beq.n	80022e0 <lamp_adc_get_frame+0x8>
 80022f2:	f7ff fe73 	bl	8001fdc <config_ok>
 80022f6:	2800      	cmp	r0, #0
 80022f8:	d0f3      	beq.n	80022e2 <lamp_adc_get_frame+0xa>
 80022fa:	4b0c      	ldr	r3, [pc, #48]	@ (800232c <lamp_adc_get_frame+0x54>)
 80022fc:	681a      	ldr	r2, [r3, #0]
 80022fe:	06d2      	lsls	r2, r2, #27
 8002300:	d4ee      	bmi.n	80022e0 <lamp_adc_get_frame+0x8>
 8002302:	689b      	ldr	r3, [r3, #8]
 8002304:	07db      	lsls	r3, r3, #31
 8002306:	d5eb      	bpl.n	80022e0 <lamp_adc_get_frame+0x8>
 8002308:	68e3      	ldr	r3, [r4, #12]
 800230a:	1af3      	subs	r3, r6, r3
 800230c:	2b14      	cmp	r3, #20
 800230e:	d8e7      	bhi.n	80022e0 <lamp_adc_get_frame+0x8>
 8002310:	69e3      	ldr	r3, [r4, #28]
 8002312:	1af6      	subs	r6, r6, r3
 8002314:	2e05      	cmp	r6, #5
 8002316:	d8e3      	bhi.n	80022e0 <lamp_adc_get_frame+0x8>
 8002318:	002a      	movs	r2, r5
 800231a:	1d23      	adds	r3, r4, #4
 800231c:	cb52      	ldmia	r3!, {r1, r4, r6}
 800231e:	c252      	stmia	r2!, {r1, r4, r6}
 8002320:	cb12      	ldmia	r3!, {r1, r4}
 8002322:	c212      	stmia	r2!, {r1, r4}
 8002324:	e7dd      	b.n	80022e2 <lamp_adc_get_frame+0xa>
 8002326:	46c0      	nop			@ (mov r8, r8)
 8002328:	20000808 	.word	0x20000808
 800232c:	40012400 	.word	0x40012400

08002330 <lamp_adc_failed>:
 8002330:	4b03      	ldr	r3, [pc, #12]	@ (8002340 <lamp_adc_failed+0x10>)
 8002332:	7858      	ldrb	r0, [r3, #1]
 8002334:	3809      	subs	r0, #9
 8002336:	4243      	negs	r3, r0
 8002338:	4158      	adcs	r0, r3
 800233a:	b2c0      	uxtb	r0, r0
 800233c:	4770      	bx	lr
 800233e:	46c0      	nop			@ (mov r8, r8)
 8002340:	20000808 	.word	0x20000808

08002344 <lamp_measurement_from_frame>:
 8002344:	b5f0      	push	{r4, r5, r6, r7, lr}
 8002346:	b08f      	sub	sp, #60	@ 0x3c
 8002348:	001f      	movs	r7, r3
 800234a:	9105      	str	r1, [sp, #20]
 800234c:	2800      	cmp	r0, #0
 800234e:	d103      	bne.n	8002358 <lamp_measurement_from_frame+0x14>
 8002350:	2301      	movs	r3, #1
 8002352:	0018      	movs	r0, r3
 8002354:	b00f      	add	sp, #60	@ 0x3c
 8002356:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8002358:	2b00      	cmp	r3, #0
 800235a:	d0f9      	beq.n	8002350 <lamp_measurement_from_frame+0xc>
 800235c:	24fa      	movs	r4, #250	@ 0xfa
 800235e:	9b05      	ldr	r3, [sp, #20]
 8002360:	4964      	ldr	r1, [pc, #400]	@ (80024f4 <lamp_measurement_from_frame+0x1b0>)
 8002362:	00a4      	lsls	r4, r4, #2
 8002364:	1859      	adds	r1, r3, r1
 8002366:	b289      	uxth	r1, r1
 8002368:	2302      	movs	r3, #2
 800236a:	42a1      	cmp	r1, r4
 800236c:	d8f1      	bhi.n	8002352 <lamp_measurement_from_frame+0xe>
 800236e:	8803      	ldrh	r3, [r0, #0]
 8002370:	4961      	ldr	r1, [pc, #388]	@ (80024f8 <lamp_measurement_from_frame+0x1b4>)
 8002372:	9304      	str	r3, [sp, #16]
 8002374:	428b      	cmp	r3, r1
 8002376:	d901      	bls.n	800237c <lamp_measurement_from_frame+0x38>
 8002378:	2303      	movs	r3, #3
 800237a:	e7ea      	b.n	8002352 <lamp_measurement_from_frame+0xe>
 800237c:	8843      	ldrh	r3, [r0, #2]
 800237e:	001d      	movs	r5, r3
 8002380:	4b5e      	ldr	r3, [pc, #376]	@ (80024fc <lamp_measurement_from_frame+0x1b8>)
 8002382:	429d      	cmp	r5, r3
 8002384:	d8f8      	bhi.n	8002378 <lamp_measurement_from_frame+0x34>
 8002386:	8881      	ldrh	r1, [r0, #4]
 8002388:	9108      	str	r1, [sp, #32]
 800238a:	4299      	cmp	r1, r3
 800238c:	d8f4      	bhi.n	8002378 <lamp_measurement_from_frame+0x34>
 800238e:	88c6      	ldrh	r6, [r0, #6]
 8002390:	495b      	ldr	r1, [pc, #364]	@ (8002500 <lamp_measurement_from_frame+0x1bc>)
 8002392:	1e73      	subs	r3, r6, #1
 8002394:	b29b      	uxth	r3, r3
 8002396:	428b      	cmp	r3, r1
 8002398:	d8ee      	bhi.n	8002378 <lamp_measurement_from_frame+0x34>
 800239a:	6903      	ldr	r3, [r0, #16]
 800239c:	9309      	str	r3, [sp, #36]	@ 0x24
 800239e:	2b00      	cmp	r3, #0
 80023a0:	d101      	bne.n	80023a6 <lamp_measurement_from_frame+0x62>
 80023a2:	2304      	movs	r3, #4
 80023a4:	e7d5      	b.n	8002352 <lamp_measurement_from_frame+0xe>
 80023a6:	6883      	ldr	r3, [r0, #8]
 80023a8:	9306      	str	r3, [sp, #24]
 80023aa:	1ad3      	subs	r3, r2, r3
 80023ac:	2b14      	cmp	r3, #20
 80023ae:	d8f8      	bhi.n	80023a2 <lamp_measurement_from_frame+0x5e>
 80023b0:	68c3      	ldr	r3, [r0, #12]
 80023b2:	9307      	str	r3, [sp, #28]
 80023b4:	1ad2      	subs	r2, r2, r3
 80023b6:	2a14      	cmp	r2, #20
 80023b8:	d8f3      	bhi.n	80023a2 <lamp_measurement_from_frame+0x5e>
 80023ba:	9a06      	ldr	r2, [sp, #24]
 80023bc:	1a9b      	subs	r3, r3, r2
 80023be:	2b14      	cmp	r3, #20
 80023c0:	d8ef      	bhi.n	80023a2 <lamp_measurement_from_frame+0x5e>
 80023c2:	2300      	movs	r3, #0
 80023c4:	4a4f      	ldr	r2, [pc, #316]	@ (8002504 <lamp_measurement_from_frame+0x1c0>)
 80023c6:	2100      	movs	r1, #0
 80023c8:	9805      	ldr	r0, [sp, #20]
 80023ca:	f003 fa55 	bl	8005878 <__aeabi_lmul>
 80023ce:	0873      	lsrs	r3, r6, #1
 80023d0:	9300      	str	r3, [sp, #0]
 80023d2:	2300      	movs	r3, #0
 80023d4:	9301      	str	r3, [sp, #4]
 80023d6:	0032      	movs	r2, r6
 80023d8:	9b00      	ldr	r3, [sp, #0]
 80023da:	9c01      	ldr	r4, [sp, #4]
 80023dc:	900a      	str	r0, [sp, #40]	@ 0x28
 80023de:	910b      	str	r1, [sp, #44]	@ 0x2c
 80023e0:	18c0      	adds	r0, r0, r3
 80023e2:	4161      	adcs	r1, r4
 80023e4:	2300      	movs	r3, #0
 80023e6:	f003 fa27 	bl	8005838 <__aeabi_uldivmod>
 80023ea:	4a47      	ldr	r2, [pc, #284]	@ (8002508 <lamp_measurement_from_frame+0x1c4>)
 80023ec:	2305      	movs	r3, #5
 80023ee:	1881      	adds	r1, r0, r2
 80023f0:	4a46      	ldr	r2, [pc, #280]	@ (800250c <lamp_measurement_from_frame+0x1c8>)
 80023f2:	900c      	str	r0, [sp, #48]	@ 0x30
 80023f4:	4291      	cmp	r1, r2
 80023f6:	d8ac      	bhi.n	8002352 <lamp_measurement_from_frame+0xe>
 80023f8:	0333      	lsls	r3, r6, #12
 80023fa:	1b9c      	subs	r4, r3, r6
 80023fc:	0863      	lsrs	r3, r4, #1
 80023fe:	9302      	str	r3, [sp, #8]
 8002400:	2300      	movs	r3, #0
 8002402:	0028      	movs	r0, r5
 8002404:	0019      	movs	r1, r3
 8002406:	9a05      	ldr	r2, [sp, #20]
 8002408:	9303      	str	r3, [sp, #12]
 800240a:	f003 fa35 	bl	8005878 <__aeabi_lmul>
 800240e:	2300      	movs	r3, #0
 8002410:	4a3f      	ldr	r2, [pc, #252]	@ (8002510 <lamp_measurement_from_frame+0x1cc>)
 8002412:	f003 fa31 	bl	8005878 <__aeabi_lmul>
 8002416:	9a02      	ldr	r2, [sp, #8]
 8002418:	9b03      	ldr	r3, [sp, #12]
 800241a:	1880      	adds	r0, r0, r2
 800241c:	4159      	adcs	r1, r3
 800241e:	0022      	movs	r2, r4
 8002420:	2300      	movs	r3, #0
 8002422:	f003 fa09 	bl	8005838 <__aeabi_uldivmod>
 8002426:	9a0a      	ldr	r2, [sp, #40]	@ 0x28
 8002428:	9b0b      	ldr	r3, [sp, #44]	@ 0x2c
 800242a:	900d      	str	r0, [sp, #52]	@ 0x34
 800242c:	2100      	movs	r1, #0
 800242e:	9808      	ldr	r0, [sp, #32]
 8002430:	f003 fa22 	bl	8005878 <__aeabi_lmul>
 8002434:	2205      	movs	r2, #5
 8002436:	2300      	movs	r3, #0
 8002438:	000e      	movs	r6, r1
 800243a:	9008      	str	r0, [sp, #32]
 800243c:	f003 fa1c 	bl	8005878 <__aeabi_lmul>
 8002440:	9a02      	ldr	r2, [sp, #8]
 8002442:	9b03      	ldr	r3, [sp, #12]
 8002444:	1880      	adds	r0, r0, r2
 8002446:	4159      	adcs	r1, r3
 8002448:	0022      	movs	r2, r4
 800244a:	2300      	movs	r3, #0
 800244c:	f003 f9f4 	bl	8005838 <__aeabi_uldivmod>
 8002450:	2300      	movs	r3, #0
 8002452:	9002      	str	r0, [sp, #8]
 8002454:	2100      	movs	r1, #0
 8002456:	0020      	movs	r0, r4
 8002458:	4a2e      	ldr	r2, [pc, #184]	@ (8002514 <lamp_measurement_from_frame+0x1d0>)
 800245a:	f003 fa0d 	bl	8005878 <__aeabi_lmul>
 800245e:	0004      	movs	r4, r0
 8002460:	000d      	movs	r5, r1
 8002462:	42b1      	cmp	r1, r6
 8002464:	d829      	bhi.n	80024ba <lamp_measurement_from_frame+0x176>
 8002466:	d102      	bne.n	800246e <lamp_measurement_from_frame+0x12a>
 8002468:	9b08      	ldr	r3, [sp, #32]
 800246a:	4298      	cmp	r0, r3
 800246c:	d825      	bhi.n	80024ba <lamp_measurement_from_frame+0x176>
 800246e:	2302      	movs	r3, #2
 8002470:	2100      	movs	r1, #0
 8002472:	4a29      	ldr	r2, [pc, #164]	@ (8002518 <lamp_measurement_from_frame+0x1d4>)
 8002474:	9805      	ldr	r0, [sp, #20]
 8002476:	f003 f9ff 	bl	8005878 <__aeabi_lmul>
 800247a:	1b00      	subs	r0, r0, r4
 800247c:	41a9      	sbcs	r1, r5
 800247e:	2401      	movs	r4, #1
 8002480:	428e      	cmp	r6, r1
 8002482:	d804      	bhi.n	800248e <lamp_measurement_from_frame+0x14a>
 8002484:	d102      	bne.n	800248c <lamp_measurement_from_frame+0x148>
 8002486:	9b08      	ldr	r3, [sp, #32]
 8002488:	4283      	cmp	r3, r0
 800248a:	d800      	bhi.n	800248e <lamp_measurement_from_frame+0x14a>
 800248c:	2400      	movs	r4, #0
 800248e:	9b04      	ldr	r3, [sp, #16]
 8002490:	2b10      	cmp	r3, #16
 8002492:	d814      	bhi.n	80024be <lamp_measurement_from_frame+0x17a>
 8002494:	2302      	movs	r3, #2
 8002496:	2000      	movs	r0, #0
 8002498:	431c      	orrs	r4, r3
 800249a:	9b0c      	ldr	r3, [sp, #48]	@ 0x30
 800249c:	60f8      	str	r0, [r7, #12]
 800249e:	603b      	str	r3, [r7, #0]
 80024a0:	9b0d      	ldr	r3, [sp, #52]	@ 0x34
 80024a2:	613c      	str	r4, [r7, #16]
 80024a4:	607b      	str	r3, [r7, #4]
 80024a6:	9b02      	ldr	r3, [sp, #8]
 80024a8:	60bb      	str	r3, [r7, #8]
 80024aa:	9b06      	ldr	r3, [sp, #24]
 80024ac:	617b      	str	r3, [r7, #20]
 80024ae:	9b07      	ldr	r3, [sp, #28]
 80024b0:	61bb      	str	r3, [r7, #24]
 80024b2:	9b09      	ldr	r3, [sp, #36]	@ 0x24
 80024b4:	61fb      	str	r3, [r7, #28]
 80024b6:	2300      	movs	r3, #0
 80024b8:	e74b      	b.n	8002352 <lamp_measurement_from_frame+0xe>
 80024ba:	2401      	movs	r4, #1
 80024bc:	e7e7      	b.n	800248e <lamp_measurement_from_frame+0x14a>
 80024be:	4b17      	ldr	r3, [pc, #92]	@ (800251c <lamp_measurement_from_frame+0x1d8>)
 80024c0:	9a04      	ldr	r2, [sp, #16]
 80024c2:	429a      	cmp	r2, r3
 80024c4:	d901      	bls.n	80024ca <lamp_measurement_from_frame+0x186>
 80024c6:	2304      	movs	r3, #4
 80024c8:	e7e5      	b.n	8002496 <lamp_measurement_from_frame+0x152>
 80024ca:	9a04      	ldr	r2, [sp, #16]
 80024cc:	4b0a      	ldr	r3, [pc, #40]	@ (80024f8 <lamp_measurement_from_frame+0x1b4>)
 80024ce:	9804      	ldr	r0, [sp, #16]
 80024d0:	1a9b      	subs	r3, r3, r2
 80024d2:	9300      	str	r3, [sp, #0]
 80024d4:	4a12      	ldr	r2, [pc, #72]	@ (8002520 <lamp_measurement_from_frame+0x1dc>)
 80024d6:	2300      	movs	r3, #0
 80024d8:	2100      	movs	r1, #0
 80024da:	f003 f9cd 	bl	8005878 <__aeabi_lmul>
 80024de:	2600      	movs	r6, #0
 80024e0:	9b00      	ldr	r3, [sp, #0]
 80024e2:	085d      	lsrs	r5, r3, #1
 80024e4:	001a      	movs	r2, r3
 80024e6:	1940      	adds	r0, r0, r5
 80024e8:	4171      	adcs	r1, r6
 80024ea:	0033      	movs	r3, r6
 80024ec:	f003 f9a4 	bl	8005838 <__aeabi_uldivmod>
 80024f0:	e7d3      	b.n	800249a <lamp_measurement_from_frame+0x156>
 80024f2:	46c0      	nop			@ (mov r8, r8)
 80024f4:	fffffc18 	.word	0xfffffc18
 80024f8:	00000fff 	.word	0x00000fff
 80024fc:	00000ffe 	.word	0x00000ffe
 8002500:	00000ffd 	.word	0x00000ffd
 8002504:	002dc6c0 	.word	0x002dc6c0
 8002508:	ffd6cd20 	.word	0xffd6cd20
 800250c:	000dbba0 	.word	0x000dbba0
 8002510:	005b8d80 	.word	0x005b8d80
 8002514:	0007a120 	.word	0x0007a120
 8002518:	dc3e3940 	.word	0xdc3e3940
 800251c:	00000fee 	.word	0x00000fee
 8002520:	00002710 	.word	0x00002710

08002524 <lamp_read_factory_vrefint_cal>:
 8002524:	4b01      	ldr	r3, [pc, #4]	@ (800252c <lamp_read_factory_vrefint_cal+0x8>)
 8002526:	8818      	ldrh	r0, [r3, #0]
 8002528:	4770      	bx	lr
 800252a:	46c0      	nop			@ (mov r8, r8)
 800252c:	1fff75aa 	.word	0x1fff75aa

08002530 <lamp_bench_capture_make>:
 8002530:	b5f0      	push	{r4, r5, r6, r7, lr}
 8002532:	b0a7      	sub	sp, #156	@ 0x9c
 8002534:	9309      	str	r3, [sp, #36]	@ 0x24
 8002536:	9b2d      	ldr	r3, [sp, #180]	@ 0xb4
 8002538:	0005      	movs	r5, r0
 800253a:	9107      	str	r1, [sp, #28]
 800253c:	9208      	str	r2, [sp, #32]
 800253e:	2b00      	cmp	r3, #0
 8002540:	d04b      	beq.n	80025da <lamp_bench_capture_make+0xaa>
 8002542:	2250      	movs	r2, #80	@ 0x50
 8002544:	2100      	movs	r1, #0
 8002546:	a812      	add	r0, sp, #72	@ 0x48
 8002548:	f7fd fe3b 	bl	80001c2 <memset>
 800254c:	2d00      	cmp	r5, #0
 800254e:	d04c      	beq.n	80025ea <lamp_bench_capture_make+0xba>
 8002550:	882b      	ldrh	r3, [r5, #0]
 8002552:	2220      	movs	r2, #32
 8002554:	9300      	str	r3, [sp, #0]
 8002556:	886b      	ldrh	r3, [r5, #2]
 8002558:	2100      	movs	r1, #0
 800255a:	9301      	str	r3, [sp, #4]
 800255c:	88ab      	ldrh	r3, [r5, #4]
 800255e:	a80a      	add	r0, sp, #40	@ 0x28
 8002560:	9302      	str	r3, [sp, #8]
 8002562:	88eb      	ldrh	r3, [r5, #6]
 8002564:	9303      	str	r3, [sp, #12]
 8002566:	68ab      	ldr	r3, [r5, #8]
 8002568:	9304      	str	r3, [sp, #16]
 800256a:	68eb      	ldr	r3, [r5, #12]
 800256c:	9305      	str	r3, [sp, #20]
 800256e:	692b      	ldr	r3, [r5, #16]
 8002570:	9306      	str	r3, [sp, #24]
 8002572:	f7fd fe26 	bl	80001c2 <memset>
 8002576:	0028      	movs	r0, r5
 8002578:	9a08      	ldr	r2, [sp, #32]
 800257a:	9907      	ldr	r1, [sp, #28]
 800257c:	ab0a      	add	r3, sp, #40	@ 0x28
 800257e:	f7ff fee1 	bl	8002344 <lamp_measurement_from_frame>
 8002582:	2800      	cmp	r0, #0
 8002584:	d12b      	bne.n	80025de <lamp_bench_capture_make+0xae>
 8002586:	9e0a      	ldr	r6, [sp, #40]	@ 0x28
 8002588:	9d0b      	ldr	r5, [sp, #44]	@ 0x2c
 800258a:	990c      	ldr	r1, [sp, #48]	@ 0x30
 800258c:	9a0d      	ldr	r2, [sp, #52]	@ 0x34
 800258e:	9b0e      	ldr	r3, [sp, #56]	@ 0x38
 8002590:	2701      	movs	r7, #1
 8002592:	2401      	movs	r4, #1
 8002594:	9015      	str	r0, [sp, #84]	@ 0x54
 8002596:	9800      	ldr	r0, [sp, #0]
 8002598:	9322      	str	r3, [sp, #136]	@ 0x88
 800259a:	9016      	str	r0, [sp, #88]	@ 0x58
 800259c:	9801      	ldr	r0, [sp, #4]
 800259e:	9b09      	ldr	r3, [sp, #36]	@ 0x24
 80025a0:	9017      	str	r0, [sp, #92]	@ 0x5c
 80025a2:	9802      	ldr	r0, [sp, #8]
 80025a4:	9412      	str	r4, [sp, #72]	@ 0x48
 80025a6:	9018      	str	r0, [sp, #96]	@ 0x60
 80025a8:	9803      	ldr	r0, [sp, #12]
 80025aa:	9c08      	ldr	r4, [sp, #32]
 80025ac:	9019      	str	r0, [sp, #100]	@ 0x64
 80025ae:	9804      	ldr	r0, [sp, #16]
 80025b0:	9323      	str	r3, [sp, #140]	@ 0x8c
 80025b2:	901a      	str	r0, [sp, #104]	@ 0x68
 80025b4:	9805      	ldr	r0, [sp, #20]
 80025b6:	9b2c      	ldr	r3, [sp, #176]	@ 0xb0
 80025b8:	901b      	str	r0, [sp, #108]	@ 0x6c
 80025ba:	9806      	ldr	r0, [sp, #24]
 80025bc:	9120      	str	r1, [sp, #128]	@ 0x80
 80025be:	901c      	str	r0, [sp, #112]	@ 0x70
 80025c0:	9807      	ldr	r0, [sp, #28]
 80025c2:	9221      	str	r2, [sp, #132]	@ 0x84
 80025c4:	901d      	str	r0, [sp, #116]	@ 0x74
 80025c6:	2250      	movs	r2, #80	@ 0x50
 80025c8:	982d      	ldr	r0, [sp, #180]	@ 0xb4
 80025ca:	a912      	add	r1, sp, #72	@ 0x48
 80025cc:	9413      	str	r4, [sp, #76]	@ 0x4c
 80025ce:	9714      	str	r7, [sp, #80]	@ 0x50
 80025d0:	961e      	str	r6, [sp, #120]	@ 0x78
 80025d2:	951f      	str	r5, [sp, #124]	@ 0x7c
 80025d4:	9324      	str	r3, [sp, #144]	@ 0x90
 80025d6:	f7fd fdeb 	bl	80001b0 <memcpy>
 80025da:	b027      	add	sp, #156	@ 0x9c
 80025dc:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80025de:	2300      	movs	r3, #0
 80025e0:	001a      	movs	r2, r3
 80025e2:	0019      	movs	r1, r3
 80025e4:	001d      	movs	r5, r3
 80025e6:	001e      	movs	r6, r3
 80025e8:	e7d2      	b.n	8002590 <lamp_bench_capture_make+0x60>
 80025ea:	002b      	movs	r3, r5
 80025ec:	002a      	movs	r2, r5
 80025ee:	0029      	movs	r1, r5
 80025f0:	002e      	movs	r6, r5
 80025f2:	2004      	movs	r0, #4
 80025f4:	002f      	movs	r7, r5
 80025f6:	9506      	str	r5, [sp, #24]
 80025f8:	9505      	str	r5, [sp, #20]
 80025fa:	9504      	str	r5, [sp, #16]
 80025fc:	9503      	str	r5, [sp, #12]
 80025fe:	9502      	str	r5, [sp, #8]
 8002600:	9501      	str	r5, [sp, #4]
 8002602:	9500      	str	r5, [sp, #0]
 8002604:	e7c5      	b.n	8002592 <lamp_bench_capture_make+0x62>
	...

08002608 <lamp_ntc_candidate_temperature>:
 8002608:	b570      	push	{r4, r5, r6, lr}
 800260a:	1e0c      	subs	r4, r1, #0
 800260c:	d101      	bne.n	8002612 <lamp_ntc_candidate_temperature+0xa>
 800260e:	2000      	movs	r0, #0
 8002610:	bd70      	pop	{r4, r5, r6, pc}
 8002612:	0003      	movs	r3, r0
 8002614:	4a13      	ldr	r2, [pc, #76]	@ (8002664 <lamp_ntc_candidate_temperature+0x5c>)
 8002616:	3b86      	subs	r3, #134	@ 0x86
 8002618:	b29b      	uxth	r3, r3
 800261a:	4293      	cmp	r3, r2
 800261c:	d8f7      	bhi.n	800260e <lamp_ntc_candidate_temperature+0x6>
 800261e:	21a5      	movs	r1, #165	@ 0xa5
 8002620:	2300      	movs	r3, #0
 8002622:	4a11      	ldr	r2, [pc, #68]	@ (8002668 <lamp_ntc_candidate_temperature+0x60>)
 8002624:	1acd      	subs	r5, r1, r3
 8002626:	2d01      	cmp	r5, #1
 8002628:	d812      	bhi.n	8002650 <lamp_ntc_candidate_temperature+0x48>
 800262a:	009b      	lsls	r3, r3, #2
 800262c:	0089      	lsls	r1, r1, #2
 800262e:	5ad6      	ldrh	r6, [r2, r3]
 8002630:	5a51      	ldrh	r1, [r2, r1]
 8002632:	18d2      	adds	r2, r2, r3
 8002634:	1b89      	subs	r1, r1, r6
 8002636:	1b86      	subs	r6, r0, r6
 8002638:	2064      	movs	r0, #100	@ 0x64
 800263a:	4370      	muls	r0, r6
 800263c:	2302      	movs	r3, #2
 800263e:	5ed5      	ldrsh	r5, [r2, r3]
 8002640:	084b      	lsrs	r3, r1, #1
 8002642:	18c0      	adds	r0, r0, r3
 8002644:	f003 f854 	bl	80056f0 <__udivsi3>
 8002648:	1a2d      	subs	r5, r5, r0
 800264a:	6025      	str	r5, [r4, #0]
 800264c:	2001      	movs	r0, #1
 800264e:	e7df      	b.n	8002610 <lamp_ntc_candidate_temperature+0x8>
 8002650:	185d      	adds	r5, r3, r1
 8002652:	086d      	lsrs	r5, r5, #1
 8002654:	00ae      	lsls	r6, r5, #2
 8002656:	5b96      	ldrh	r6, [r2, r6]
 8002658:	4286      	cmp	r6, r0
 800265a:	d801      	bhi.n	8002660 <lamp_ntc_candidate_temperature+0x58>
 800265c:	002b      	movs	r3, r5
 800265e:	e7e1      	b.n	8002624 <lamp_ntc_candidate_temperature+0x1c>
 8002660:	0029      	movs	r1, r5
 8002662:	e7df      	b.n	8002624 <lamp_ntc_candidate_temperature+0x1c>
 8002664:	00000f01 	.word	0x00000f01
 8002668:	08005b7e 	.word	0x08005b7e

0800266c <lamp_uart_init>:
 800266c:	b570      	push	{r4, r5, r6, lr}
 800266e:	2800      	cmp	r0, #0
 8002670:	d101      	bne.n	8002676 <lamp_uart_init+0xa>
 8002672:	2000      	movs	r0, #0
 8002674:	bd70      	pop	{r4, r5, r6, pc}
 8002676:	2900      	cmp	r1, #0
 8002678:	d0fb      	beq.n	8002672 <lamp_uart_init+0x6>
 800267a:	084b      	lsrs	r3, r1, #1
 800267c:	1818      	adds	r0, r3, r0
 800267e:	f003 f837 	bl	80056f0 <__udivsi3>
 8002682:	0002      	movs	r2, r0
 8002684:	4b20      	ldr	r3, [pc, #128]	@ (8002708 <lamp_uart_init+0x9c>)
 8002686:	3a10      	subs	r2, #16
 8002688:	429a      	cmp	r2, r3
 800268a:	d8f2      	bhi.n	8002672 <lamp_uart_init+0x6>
 800268c:	2501      	movs	r5, #1
 800268e:	4b1f      	ldr	r3, [pc, #124]	@ (800270c <lamp_uart_init+0xa0>)
 8002690:	24f0      	movs	r4, #240	@ 0xf0
 8002692:	6b5a      	ldr	r2, [r3, #52]	@ 0x34
 8002694:	432a      	orrs	r2, r5
 8002696:	635a      	str	r2, [r3, #52]	@ 0x34
 8002698:	2280      	movs	r2, #128	@ 0x80
 800269a:	6bd9      	ldr	r1, [r3, #60]	@ 0x3c
 800269c:	0292      	lsls	r2, r2, #10
 800269e:	430a      	orrs	r2, r1
 80026a0:	63da      	str	r2, [r3, #60]	@ 0x3c
 80026a2:	6bdb      	ldr	r3, [r3, #60]	@ 0x3c
 80026a4:	23a0      	movs	r3, #160	@ 0xa0
 80026a6:	22a0      	movs	r2, #160	@ 0xa0
 80026a8:	05db      	lsls	r3, r3, #23
 80026aa:	6819      	ldr	r1, [r3, #0]
 80026ac:	43a1      	bics	r1, r4
 80026ae:	430a      	orrs	r2, r1
 80026b0:	601a      	str	r2, [r3, #0]
 80026b2:	2240      	movs	r2, #64	@ 0x40
 80026b4:	68d9      	ldr	r1, [r3, #12]
 80026b6:	43a1      	bics	r1, r4
 80026b8:	430a      	orrs	r2, r1
 80026ba:	60da      	str	r2, [r3, #12]
 80026bc:	6a19      	ldr	r1, [r3, #32]
 80026be:	4a14      	ldr	r2, [pc, #80]	@ (8002710 <lamp_uart_init+0xa4>)
 80026c0:	4c14      	ldr	r4, [pc, #80]	@ (8002714 <lamp_uart_init+0xa8>)
 80026c2:	4011      	ands	r1, r2
 80026c4:	2288      	movs	r2, #136	@ 0x88
 80026c6:	0152      	lsls	r2, r2, #5
 80026c8:	430a      	orrs	r2, r1
 80026ca:	621a      	str	r2, [r3, #32]
 80026cc:	2300      	movs	r3, #0
 80026ce:	220f      	movs	r2, #15
 80026d0:	6023      	str	r3, [r4, #0]
 80026d2:	6063      	str	r3, [r4, #4]
 80026d4:	60a5      	str	r5, [r4, #8]
 80026d6:	62e3      	str	r3, [r4, #44]	@ 0x2c
 80026d8:	60e0      	str	r0, [r4, #12]
 80026da:	480f      	ldr	r0, [pc, #60]	@ (8002718 <lamp_uart_init+0xac>)
 80026dc:	6222      	str	r2, [r4, #32]
 80026de:	7003      	strb	r3, [r0, #0]
 80026e0:	7043      	strb	r3, [r0, #1]
 80026e2:	6043      	str	r3, [r0, #4]
 80026e4:	6083      	str	r3, [r0, #8]
 80026e6:	60c3      	str	r3, [r0, #12]
 80026e8:	3010      	adds	r0, #16
 80026ea:	f000 f899 	bl	8002820 <lamp_tx_queue_init>
 80026ee:	2280      	movs	r2, #128	@ 0x80
 80026f0:	21c0      	movs	r1, #192	@ 0xc0
 80026f2:	4b0a      	ldr	r3, [pc, #40]	@ (800271c <lamp_uart_init+0xb0>)
 80026f4:	0552      	lsls	r2, r2, #21
 80026f6:	0049      	lsls	r1, r1, #1
 80026f8:	505a      	str	r2, [r3, r1]
 80026fa:	3954      	subs	r1, #84	@ 0x54
 80026fc:	39ff      	subs	r1, #255	@ 0xff
 80026fe:	6021      	str	r1, [r4, #0]
 8002700:	601a      	str	r2, [r3, #0]
 8002702:	0028      	movs	r0, r5
 8002704:	e7b6      	b.n	8002674 <lamp_uart_init+0x8>
 8002706:	46c0      	nop			@ (mov r8, r8)
 8002708:	0000ffef 	.word	0x0000ffef
 800270c:	40021000 	.word	0x40021000
 8002710:	ffff00ff 	.word	0xffff00ff
 8002714:	40004400 	.word	0x40004400
 8002718:	20000838 	.word	0x20000838
 800271c:	e000e100 	.word	0xe000e100

08002720 <lamp_uart_rx_read>:
 8002720:	2800      	cmp	r0, #0
 8002722:	d101      	bne.n	8002728 <lamp_uart_rx_read+0x8>
 8002724:	2000      	movs	r0, #0
 8002726:	4770      	bx	lr
 8002728:	4a07      	ldr	r2, [pc, #28]	@ (8002748 <lamp_uart_rx_read+0x28>)
 800272a:	7853      	ldrb	r3, [r2, #1]
 800272c:	7811      	ldrb	r1, [r2, #0]
 800272e:	4299      	cmp	r1, r3
 8002730:	d0f8      	beq.n	8002724 <lamp_uart_rx_read+0x4>
 8002732:	f3bf 8f5f 	dmb	sy
 8002736:	4905      	ldr	r1, [pc, #20]	@ (800274c <lamp_uart_rx_read+0x2c>)
 8002738:	5cc9      	ldrb	r1, [r1, r3]
 800273a:	7001      	strb	r1, [r0, #0]
 800273c:	f3bf 8f5f 	dmb	sy
 8002740:	3301      	adds	r3, #1
 8002742:	2001      	movs	r0, #1
 8002744:	7053      	strb	r3, [r2, #1]
 8002746:	e7ee      	b.n	8002726 <lamp_uart_rx_read+0x6>
 8002748:	20000838 	.word	0x20000838
 800274c:	2000088a 	.word	0x2000088a

08002750 <lamp_uart_tx_enqueue>:
 8002750:	b510      	push	{r4, lr}
 8002752:	4808      	ldr	r0, [pc, #32]	@ (8002774 <lamp_uart_tx_enqueue+0x24>)
 8002754:	4c08      	ldr	r4, [pc, #32]	@ (8002778 <lamp_uart_tx_enqueue+0x28>)
 8002756:	f000 f86c 	bl	8002832 <lamp_tx_queue_push>
 800275a:	2800      	cmp	r0, #0
 800275c:	d103      	bne.n	8002766 <lamp_uart_tx_enqueue+0x16>
 800275e:	68e3      	ldr	r3, [r4, #12]
 8002760:	3301      	adds	r3, #1
 8002762:	60e3      	str	r3, [r4, #12]
 8002764:	bd10      	pop	{r4, pc}
 8002766:	2380      	movs	r3, #128	@ 0x80
 8002768:	4a04      	ldr	r2, [pc, #16]	@ (800277c <lamp_uart_tx_enqueue+0x2c>)
 800276a:	6811      	ldr	r1, [r2, #0]
 800276c:	430b      	orrs	r3, r1
 800276e:	6013      	str	r3, [r2, #0]
 8002770:	e7f8      	b.n	8002764 <lamp_uart_tx_enqueue+0x14>
 8002772:	46c0      	nop			@ (mov r8, r8)
 8002774:	20000848 	.word	0x20000848
 8002778:	20000838 	.word	0x20000838
 800277c:	40004400 	.word	0x40004400

08002780 <lamp_uart_get_stats>:
 8002780:	b510      	push	{r4, lr}
 8002782:	1e04      	subs	r4, r0, #0
 8002784:	d00a      	beq.n	800279c <lamp_uart_get_stats+0x1c>
 8002786:	4806      	ldr	r0, [pc, #24]	@ (80027a0 <lamp_uart_get_stats+0x20>)
 8002788:	6843      	ldr	r3, [r0, #4]
 800278a:	6023      	str	r3, [r4, #0]
 800278c:	68c3      	ldr	r3, [r0, #12]
 800278e:	6063      	str	r3, [r4, #4]
 8002790:	6883      	ldr	r3, [r0, #8]
 8002792:	3010      	adds	r0, #16
 8002794:	60a3      	str	r3, [r4, #8]
 8002796:	f000 f884 	bl	80028a2 <lamp_tx_queue_count>
 800279a:	60e0      	str	r0, [r4, #12]
 800279c:	bd10      	pop	{r4, pc}
 800279e:	46c0      	nop			@ (mov r8, r8)
 80027a0:	20000838 	.word	0x20000838

080027a4 <USART2_IRQHandler>:
 80027a4:	b573      	push	{r0, r1, r4, r5, r6, lr}
 80027a6:	4c1a      	ldr	r4, [pc, #104]	@ (8002810 <USART2_IRQHandler+0x6c>)
 80027a8:	220f      	movs	r2, #15
 80027aa:	69e1      	ldr	r1, [r4, #28]
 80027ac:	000b      	movs	r3, r1
 80027ae:	4013      	ands	r3, r2
 80027b0:	0688      	lsls	r0, r1, #26
 80027b2:	d52a      	bpl.n	800280a <USART2_IRQHandler+0x66>
 80027b4:	6a65      	ldr	r5, [r4, #36]	@ 0x24
 80027b6:	2b00      	cmp	r3, #0
 80027b8:	d012      	beq.n	80027e0 <USART2_IRQHandler+0x3c>
 80027ba:	6222      	str	r2, [r4, #32]
 80027bc:	4a15      	ldr	r2, [pc, #84]	@ (8002814 <USART2_IRQHandler+0x70>)
 80027be:	6893      	ldr	r3, [r2, #8]
 80027c0:	3301      	adds	r3, #1
 80027c2:	6093      	str	r3, [r2, #8]
 80027c4:	2580      	movs	r5, #128	@ 0x80
 80027c6:	4229      	tst	r1, r5
 80027c8:	d009      	beq.n	80027de <USART2_IRQHandler+0x3a>
 80027ca:	466b      	mov	r3, sp
 80027cc:	1dde      	adds	r6, r3, #7
 80027ce:	0031      	movs	r1, r6
 80027d0:	4811      	ldr	r0, [pc, #68]	@ (8002818 <USART2_IRQHandler+0x74>)
 80027d2:	f000 f84f 	bl	8002874 <lamp_tx_queue_pop>
 80027d6:	2800      	cmp	r0, #0
 80027d8:	d013      	beq.n	8002802 <USART2_IRQHandler+0x5e>
 80027da:	7833      	ldrb	r3, [r6, #0]
 80027dc:	62a3      	str	r3, [r4, #40]	@ 0x28
 80027de:	bd73      	pop	{r0, r1, r4, r5, r6, pc}
 80027e0:	4b0c      	ldr	r3, [pc, #48]	@ (8002814 <USART2_IRQHandler+0x70>)
 80027e2:	7818      	ldrb	r0, [r3, #0]
 80027e4:	785e      	ldrb	r6, [r3, #1]
 80027e6:	1c42      	adds	r2, r0, #1
 80027e8:	b2d2      	uxtb	r2, r2
 80027ea:	4296      	cmp	r6, r2
 80027ec:	d103      	bne.n	80027f6 <USART2_IRQHandler+0x52>
 80027ee:	685a      	ldr	r2, [r3, #4]
 80027f0:	3201      	adds	r2, #1
 80027f2:	605a      	str	r2, [r3, #4]
 80027f4:	e7e6      	b.n	80027c4 <USART2_IRQHandler+0x20>
 80027f6:	4e09      	ldr	r6, [pc, #36]	@ (800281c <USART2_IRQHandler+0x78>)
 80027f8:	5435      	strb	r5, [r6, r0]
 80027fa:	f3bf 8f5f 	dmb	sy
 80027fe:	701a      	strb	r2, [r3, #0]
 8002800:	e7e0      	b.n	80027c4 <USART2_IRQHandler+0x20>
 8002802:	6823      	ldr	r3, [r4, #0]
 8002804:	43ab      	bics	r3, r5
 8002806:	6023      	str	r3, [r4, #0]
 8002808:	e7e9      	b.n	80027de <USART2_IRQHandler+0x3a>
 800280a:	2b00      	cmp	r3, #0
 800280c:	d1d5      	bne.n	80027ba <USART2_IRQHandler+0x16>
 800280e:	e7d9      	b.n	80027c4 <USART2_IRQHandler+0x20>
 8002810:	40004400 	.word	0x40004400
 8002814:	20000838 	.word	0x20000838
 8002818:	20000848 	.word	0x20000848
 800281c:	2000088a 	.word	0x2000088a

08002820 <lamp_tx_queue_init>:
 8002820:	2800      	cmp	r0, #0
 8002822:	d005      	beq.n	8002830 <lamp_tx_queue_init+0x10>
 8002824:	0002      	movs	r2, r0
 8002826:	2300      	movs	r3, #0
 8002828:	3240      	adds	r2, #64	@ 0x40
 800282a:	3041      	adds	r0, #65	@ 0x41
 800282c:	7013      	strb	r3, [r2, #0]
 800282e:	7003      	strb	r3, [r0, #0]
 8002830:	4770      	bx	lr

08002832 <lamp_tx_queue_push>:
 8002832:	b5f0      	push	{r4, r5, r6, r7, lr}
 8002834:	2800      	cmp	r0, #0
 8002836:	d101      	bne.n	800283c <lamp_tx_queue_push+0xa>
 8002838:	2000      	movs	r0, #0
 800283a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 800283c:	2900      	cmp	r1, #0
 800283e:	d0fb      	beq.n	8002838 <lamp_tx_queue_push+0x6>
 8002840:	1e53      	subs	r3, r2, #1
 8002842:	2b3e      	cmp	r3, #62	@ 0x3e
 8002844:	d8f8      	bhi.n	8002838 <lamp_tx_queue_push+0x6>
 8002846:	0005      	movs	r5, r0
 8002848:	3540      	adds	r5, #64	@ 0x40
 800284a:	782b      	ldrb	r3, [r5, #0]
 800284c:	263f      	movs	r6, #63	@ 0x3f
 800284e:	0004      	movs	r4, r0
 8002850:	0037      	movs	r7, r6
 8002852:	3441      	adds	r4, #65	@ 0x41
 8002854:	7824      	ldrb	r4, [r4, #0]
 8002856:	1b1c      	subs	r4, r3, r4
 8002858:	43a7      	bics	r7, r4
 800285a:	4297      	cmp	r7, r2
 800285c:	d3ec      	bcc.n	8002838 <lamp_tx_queue_push+0x6>
 800285e:	188a      	adds	r2, r1, r2
 8002860:	780c      	ldrb	r4, [r1, #0]
 8002862:	3101      	adds	r1, #1
 8002864:	54c4      	strb	r4, [r0, r3]
 8002866:	3301      	adds	r3, #1
 8002868:	4033      	ands	r3, r6
 800286a:	4291      	cmp	r1, r2
 800286c:	d1f8      	bne.n	8002860 <lamp_tx_queue_push+0x2e>
 800286e:	2001      	movs	r0, #1
 8002870:	702b      	strb	r3, [r5, #0]
 8002872:	e7e2      	b.n	800283a <lamp_tx_queue_push+0x8>

08002874 <lamp_tx_queue_pop>:
 8002874:	b510      	push	{r4, lr}
 8002876:	2800      	cmp	r0, #0
 8002878:	d101      	bne.n	800287e <lamp_tx_queue_pop+0xa>
 800287a:	2000      	movs	r0, #0
 800287c:	bd10      	pop	{r4, pc}
 800287e:	2900      	cmp	r1, #0
 8002880:	d0fb      	beq.n	800287a <lamp_tx_queue_pop+0x6>
 8002882:	0002      	movs	r2, r0
 8002884:	3241      	adds	r2, #65	@ 0x41
 8002886:	7813      	ldrb	r3, [r2, #0]
 8002888:	0004      	movs	r4, r0
 800288a:	3440      	adds	r4, #64	@ 0x40
 800288c:	7824      	ldrb	r4, [r4, #0]
 800288e:	42a3      	cmp	r3, r4
 8002890:	d0f3      	beq.n	800287a <lamp_tx_queue_pop+0x6>
 8002892:	5cc0      	ldrb	r0, [r0, r3]
 8002894:	3301      	adds	r3, #1
 8002896:	7008      	strb	r0, [r1, #0]
 8002898:	213f      	movs	r1, #63	@ 0x3f
 800289a:	400b      	ands	r3, r1
 800289c:	2001      	movs	r0, #1
 800289e:	7013      	strb	r3, [r2, #0]
 80028a0:	e7ec      	b.n	800287c <lamp_tx_queue_pop+0x8>

080028a2 <lamp_tx_queue_count>:
 80028a2:	1e02      	subs	r2, r0, #0
 80028a4:	d007      	beq.n	80028b6 <lamp_tx_queue_count+0x14>
 80028a6:	0003      	movs	r3, r0
 80028a8:	3340      	adds	r3, #64	@ 0x40
 80028aa:	781b      	ldrb	r3, [r3, #0]
 80028ac:	3241      	adds	r2, #65	@ 0x41
 80028ae:	7810      	ldrb	r0, [r2, #0]
 80028b0:	1a18      	subs	r0, r3, r0
 80028b2:	233f      	movs	r3, #63	@ 0x3f
 80028b4:	4018      	ands	r0, r3
 80028b6:	4770      	bx	lr

080028b8 <put32>:
 80028b8:	0a0b      	lsrs	r3, r1, #8
 80028ba:	7001      	strb	r1, [r0, #0]
 80028bc:	7043      	strb	r3, [r0, #1]
 80028be:	0c0b      	lsrs	r3, r1, #16
 80028c0:	0e09      	lsrs	r1, r1, #24
 80028c2:	7083      	strb	r3, [r0, #2]
 80028c4:	70c1      	strb	r1, [r0, #3]
 80028c6:	4770      	bx	lr

080028c8 <put64>:
 80028c8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 80028ca:	0005      	movs	r5, r0
 80028cc:	0016      	movs	r6, r2
 80028ce:	001f      	movs	r7, r3
 80028d0:	2400      	movs	r4, #0
 80028d2:	00e2      	lsls	r2, r4, #3
 80028d4:	0030      	movs	r0, r6
 80028d6:	0039      	movs	r1, r7
 80028d8:	f002 ff96 	bl	8005808 <__aeabi_llsr>
 80028dc:	5528      	strb	r0, [r5, r4]
 80028de:	3401      	adds	r4, #1
 80028e0:	2c08      	cmp	r4, #8
 80028e2:	d1f6      	bne.n	80028d2 <put64+0xa>
 80028e4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

080028e6 <get32>:
 80028e6:	2300      	movs	r3, #0
 80028e8:	001a      	movs	r2, r3
 80028ea:	b510      	push	{r4, lr}
 80028ec:	5cc1      	ldrb	r1, [r0, r3]
 80028ee:	00dc      	lsls	r4, r3, #3
 80028f0:	40a1      	lsls	r1, r4
 80028f2:	3301      	adds	r3, #1
 80028f4:	430a      	orrs	r2, r1
 80028f6:	2b04      	cmp	r3, #4
 80028f8:	d1f8      	bne.n	80028ec <get32+0x6>
 80028fa:	0010      	movs	r0, r2
 80028fc:	bd10      	pop	{r4, pc}

080028fe <get64>:
 80028fe:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8002900:	2400      	movs	r4, #0
 8002902:	0007      	movs	r7, r0
 8002904:	0026      	movs	r6, r4
 8002906:	0025      	movs	r5, r4
 8002908:	5d38      	ldrb	r0, [r7, r4]
 800290a:	00e2      	lsls	r2, r4, #3
 800290c:	2100      	movs	r1, #0
 800290e:	b2c0      	uxtb	r0, r0
 8002910:	f002 ff86 	bl	8005820 <__aeabi_llsl>
 8002914:	3401      	adds	r4, #1
 8002916:	4306      	orrs	r6, r0
 8002918:	430d      	orrs	r5, r1
 800291a:	2c08      	cmp	r4, #8
 800291c:	d1f4      	bne.n	8002908 <get64+0xa>
 800291e:	0030      	movs	r0, r6
 8002920:	0029      	movs	r1, r5
 8002922:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

08002924 <valid_ticket>:
 8002924:	2800      	cmp	r0, #0
 8002926:	d101      	bne.n	800292c <valid_ticket+0x8>
 8002928:	2000      	movs	r0, #0
 800292a:	4770      	bx	lr
 800292c:	6803      	ldr	r3, [r0, #0]
 800292e:	6842      	ldr	r2, [r0, #4]
 8002930:	4313      	orrs	r3, r2
 8002932:	d0f9      	beq.n	8002928 <valid_ticket+0x4>
 8002934:	6883      	ldr	r3, [r0, #8]
 8002936:	2b00      	cmp	r3, #0
 8002938:	d0f6      	beq.n	8002928 <valid_ticket+0x4>
 800293a:	68c3      	ldr	r3, [r0, #12]
 800293c:	2b00      	cmp	r3, #0
 800293e:	d0f3      	beq.n	8002928 <valid_ticket+0x4>
 8002940:	8a03      	ldrh	r3, [r0, #16]
 8002942:	3b01      	subs	r3, #1
 8002944:	b29b      	uxth	r3, r3
 8002946:	2b79      	cmp	r3, #121	@ 0x79
 8002948:	d8ee      	bhi.n	8002928 <valid_ticket+0x4>
 800294a:	6983      	ldr	r3, [r0, #24]
 800294c:	69c0      	ldr	r0, [r0, #28]
 800294e:	4318      	orrs	r0, r3
 8002950:	1e43      	subs	r3, r0, #1
 8002952:	4198      	sbcs	r0, r3
 8002954:	e7e9      	b.n	800292a <valid_ticket+0x6>

08002956 <valid_result>:
 8002956:	2800      	cmp	r0, #0
 8002958:	d101      	bne.n	800295e <valid_result+0x8>
 800295a:	2000      	movs	r0, #0
 800295c:	4770      	bx	lr
 800295e:	6803      	ldr	r3, [r0, #0]
 8002960:	6842      	ldr	r2, [r0, #4]
 8002962:	4313      	orrs	r3, r2
 8002964:	d0f9      	beq.n	800295a <valid_result+0x4>
 8002966:	6883      	ldr	r3, [r0, #8]
 8002968:	2b00      	cmp	r3, #0
 800296a:	d0f6      	beq.n	800295a <valid_result+0x4>
 800296c:	68c3      	ldr	r3, [r0, #12]
 800296e:	2b00      	cmp	r3, #0
 8002970:	d0f3      	beq.n	800295a <valid_result+0x4>
 8002972:	6a02      	ldr	r2, [r0, #32]
 8002974:	6a43      	ldr	r3, [r0, #36]	@ 0x24
 8002976:	0011      	movs	r1, r2
 8002978:	4319      	orrs	r1, r3
 800297a:	d0ee      	beq.n	800295a <valid_result+0x4>
 800297c:	69c1      	ldr	r1, [r0, #28]
 800297e:	4299      	cmp	r1, r3
 8002980:	d303      	bcc.n	800298a <valid_result+0x34>
 8002982:	d1ea      	bne.n	800295a <valid_result+0x4>
 8002984:	6983      	ldr	r3, [r0, #24]
 8002986:	4293      	cmp	r3, r2
 8002988:	d2e7      	bcs.n	800295a <valid_result+0x4>
 800298a:	8a02      	ldrh	r2, [r0, #16]
 800298c:	1e53      	subs	r3, r2, #1
 800298e:	2b79      	cmp	r3, #121	@ 0x79
 8002990:	d8e3      	bhi.n	800295a <valid_result+0x4>
 8002992:	0003      	movs	r3, r0
 8002994:	3328      	adds	r3, #40	@ 0x28
 8002996:	781b      	ldrb	r3, [r3, #0]
 8002998:	2b01      	cmp	r3, #1
 800299a:	d8de      	bhi.n	800295a <valid_result+0x4>
 800299c:	2b00      	cmp	r3, #0
 800299e:	d001      	beq.n	80029a4 <valid_result+0x4e>
 80029a0:	2001      	movs	r0, #1
 80029a2:	e7db      	b.n	800295c <valid_result+0x6>
 80029a4:	3029      	adds	r0, #41	@ 0x29
 80029a6:	5cc1      	ldrb	r1, [r0, r3]
 80029a8:	2900      	cmp	r1, #0
 80029aa:	d1d6      	bne.n	800295a <valid_result+0x4>
 80029ac:	3301      	adds	r3, #1
 80029ae:	b299      	uxth	r1, r3
 80029b0:	428a      	cmp	r2, r1
 80029b2:	d8f8      	bhi.n	80029a6 <valid_result+0x50>
 80029b4:	e7f4      	b.n	80029a0 <valid_result+0x4a>

080029b6 <valid_ui_ack>:
 80029b6:	2800      	cmp	r0, #0
 80029b8:	d101      	bne.n	80029be <valid_ui_ack+0x8>
 80029ba:	2000      	movs	r0, #0
 80029bc:	4770      	bx	lr
 80029be:	6803      	ldr	r3, [r0, #0]
 80029c0:	6842      	ldr	r2, [r0, #4]
 80029c2:	4313      	orrs	r3, r2
 80029c4:	d0f9      	beq.n	80029ba <valid_ui_ack+0x4>
 80029c6:	7b43      	ldrb	r3, [r0, #13]
 80029c8:	2b02      	cmp	r3, #2
 80029ca:	d8f6      	bhi.n	80029ba <valid_ui_ack+0x4>
 80029cc:	7b81      	ldrb	r1, [r0, #14]
 80029ce:	2903      	cmp	r1, #3
 80029d0:	d8f3      	bhi.n	80029ba <valid_ui_ack+0x4>
 80029d2:	7b02      	ldrb	r2, [r0, #12]
 80029d4:	2a07      	cmp	r2, #7
 80029d6:	d8f0      	bhi.n	80029ba <valid_ui_ack+0x4>
 80029d8:	6883      	ldr	r3, [r0, #8]
 80029da:	2b00      	cmp	r3, #0
 80029dc:	d10a      	bne.n	80029f4 <valid_ui_ack+0x3e>
 80029de:	3a06      	subs	r2, #6
 80029e0:	2a01      	cmp	r2, #1
 80029e2:	d8ea      	bhi.n	80029ba <valid_ui_ack+0x4>
 80029e4:	68c2      	ldr	r2, [r0, #12]
 80029e6:	4b09      	ldr	r3, [pc, #36]	@ (8002a0c <valid_ui_ack+0x56>)
 80029e8:	421a      	tst	r2, r3
 80029ea:	d1e6      	bne.n	80029ba <valid_ui_ack+0x4>
 80029ec:	6900      	ldr	r0, [r0, #16]
 80029ee:	4243      	negs	r3, r0
 80029f0:	4158      	adcs	r0, r3
 80029f2:	e7e3      	b.n	80029bc <valid_ui_ack+0x6>
 80029f4:	2300      	movs	r3, #0
 80029f6:	2a05      	cmp	r2, #5
 80029f8:	d805      	bhi.n	8002a06 <valid_ui_ack+0x50>
 80029fa:	3301      	adds	r3, #1
 80029fc:	4219      	tst	r1, r3
 80029fe:	d102      	bne.n	8002a06 <valid_ui_ack+0x50>
 8002a00:	6903      	ldr	r3, [r0, #16]
 8002a02:	425a      	negs	r2, r3
 8002a04:	4153      	adcs	r3, r2
 8002a06:	0018      	movs	r0, r3
 8002a08:	e7d8      	b.n	80029bc <valid_ui_ack+0x6>
 8002a0a:	46c0      	nop			@ (mov r8, r8)
 8002a0c:	00ffff00 	.word	0x00ffff00

08002a10 <aiw_crc16_ccitt_false>:
 8002a10:	b530      	push	{r4, r5, lr}
 8002a12:	2800      	cmp	r0, #0
 8002a14:	d102      	bne.n	8002a1c <aiw_crc16_ccitt_false+0xc>
 8002a16:	0003      	movs	r3, r0
 8002a18:	4281      	cmp	r1, r0
 8002a1a:	d104      	bne.n	8002a26 <aiw_crc16_ccitt_false+0x16>
 8002a1c:	4b0a      	ldr	r3, [pc, #40]	@ (8002a48 <aiw_crc16_ccitt_false+0x38>)
 8002a1e:	4c0b      	ldr	r4, [pc, #44]	@ (8002a4c <aiw_crc16_ccitt_false+0x3c>)
 8002a20:	1841      	adds	r1, r0, r1
 8002a22:	4288      	cmp	r0, r1
 8002a24:	d101      	bne.n	8002a2a <aiw_crc16_ccitt_false+0x1a>
 8002a26:	0018      	movs	r0, r3
 8002a28:	bd30      	pop	{r4, r5, pc}
 8002a2a:	7802      	ldrb	r2, [r0, #0]
 8002a2c:	0212      	lsls	r2, r2, #8
 8002a2e:	4053      	eors	r3, r2
 8002a30:	2208      	movs	r2, #8
 8002a32:	b21d      	sxth	r5, r3
 8002a34:	005b      	lsls	r3, r3, #1
 8002a36:	b29b      	uxth	r3, r3
 8002a38:	2d00      	cmp	r5, #0
 8002a3a:	da00      	bge.n	8002a3e <aiw_crc16_ccitt_false+0x2e>
 8002a3c:	4063      	eors	r3, r4
 8002a3e:	3a01      	subs	r2, #1
 8002a40:	2a00      	cmp	r2, #0
 8002a42:	d1f6      	bne.n	8002a32 <aiw_crc16_ccitt_false+0x22>
 8002a44:	3001      	adds	r0, #1
 8002a46:	e7ec      	b.n	8002a22 <aiw_crc16_ccitt_false+0x12>
 8002a48:	0000ffff 	.word	0x0000ffff
 8002a4c:	00001021 	.word	0x00001021

08002a50 <packet_matches>:
 8002a50:	b570      	push	{r4, r5, r6, lr}
 8002a52:	1e04      	subs	r4, r0, #0
 8002a54:	d101      	bne.n	8002a5a <packet_matches+0xa>
 8002a56:	2000      	movs	r0, #0
 8002a58:	bd70      	pop	{r4, r5, r6, pc}
 8002a5a:	001d      	movs	r5, r3
 8002a5c:	350a      	adds	r5, #10
 8002a5e:	b2ad      	uxth	r5, r5
 8002a60:	428d      	cmp	r5, r1
 8002a62:	d1f8      	bne.n	8002a56 <packet_matches+0x6>
 8002a64:	7801      	ldrb	r1, [r0, #0]
 8002a66:	294e      	cmp	r1, #78	@ 0x4e
 8002a68:	d1f5      	bne.n	8002a56 <packet_matches+0x6>
 8002a6a:	7841      	ldrb	r1, [r0, #1]
 8002a6c:	294c      	cmp	r1, #76	@ 0x4c
 8002a6e:	d1f2      	bne.n	8002a56 <packet_matches+0x6>
 8002a70:	7881      	ldrb	r1, [r0, #2]
 8002a72:	2941      	cmp	r1, #65	@ 0x41
 8002a74:	d1ef      	bne.n	8002a56 <packet_matches+0x6>
 8002a76:	78c1      	ldrb	r1, [r0, #3]
 8002a78:	2949      	cmp	r1, #73	@ 0x49
 8002a7a:	d1ec      	bne.n	8002a56 <packet_matches+0x6>
 8002a7c:	7901      	ldrb	r1, [r0, #4]
 8002a7e:	2902      	cmp	r1, #2
 8002a80:	d1e9      	bne.n	8002a56 <packet_matches+0x6>
 8002a82:	7941      	ldrb	r1, [r0, #5]
 8002a84:	4291      	cmp	r1, r2
 8002a86:	d1e6      	bne.n	8002a56 <packet_matches+0x6>
 8002a88:	79c2      	ldrb	r2, [r0, #7]
 8002a8a:	7981      	ldrb	r1, [r0, #6]
 8002a8c:	0212      	lsls	r2, r2, #8
 8002a8e:	430a      	orrs	r2, r1
 8002a90:	4293      	cmp	r3, r2
 8002a92:	d1e0      	bne.n	8002a56 <packet_matches+0x6>
 8002a94:	3d02      	subs	r5, #2
 8002a96:	0029      	movs	r1, r5
 8002a98:	f7ff ffba 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002a9c:	5d62      	ldrb	r2, [r4, r5]
 8002a9e:	1964      	adds	r4, r4, r5
 8002aa0:	7863      	ldrb	r3, [r4, #1]
 8002aa2:	021b      	lsls	r3, r3, #8
 8002aa4:	4313      	orrs	r3, r2
 8002aa6:	1a18      	subs	r0, r3, r0
 8002aa8:	4242      	negs	r2, r0
 8002aaa:	4150      	adcs	r0, r2
 8002aac:	b2c0      	uxtb	r0, r0
 8002aae:	e7d3      	b.n	8002a58 <packet_matches+0x8>

08002ab0 <aiw_encode_ticket>:
 8002ab0:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8002ab2:	0005      	movs	r5, r0
 8002ab4:	000c      	movs	r4, r1
 8002ab6:	1e1f      	subs	r7, r3, #0
 8002ab8:	9201      	str	r2, [sp, #4]
 8002aba:	d102      	bne.n	8002ac2 <aiw_encode_ticket+0x12>
 8002abc:	2600      	movs	r6, #0
 8002abe:	0030      	movs	r0, r6
 8002ac0:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8002ac2:	2300      	movs	r3, #0
 8002ac4:	603b      	str	r3, [r7, #0]
 8002ac6:	4299      	cmp	r1, r3
 8002ac8:	d0f8      	beq.n	8002abc <aiw_encode_ticket+0xc>
 8002aca:	f7ff ff2b 	bl	8002924 <valid_ticket>
 8002ace:	1e06      	subs	r6, r0, #0
 8002ad0:	d0f5      	beq.n	8002abe <aiw_encode_ticket+0xe>
 8002ad2:	9a01      	ldr	r2, [sp, #4]
 8002ad4:	2a23      	cmp	r2, #35	@ 0x23
 8002ad6:	d9f1      	bls.n	8002abc <aiw_encode_ticket+0xc>
 8002ad8:	234e      	movs	r3, #78	@ 0x4e
 8002ada:	7023      	strb	r3, [r4, #0]
 8002adc:	3b02      	subs	r3, #2
 8002ade:	7063      	strb	r3, [r4, #1]
 8002ae0:	3b0b      	subs	r3, #11
 8002ae2:	70a3      	strb	r3, [r4, #2]
 8002ae4:	3308      	adds	r3, #8
 8002ae6:	70e3      	strb	r3, [r4, #3]
 8002ae8:	3b47      	subs	r3, #71	@ 0x47
 8002aea:	7123      	strb	r3, [r4, #4]
 8002aec:	332e      	adds	r3, #46	@ 0x2e
 8002aee:	7163      	strb	r3, [r4, #5]
 8002af0:	3b16      	subs	r3, #22
 8002af2:	71a3      	strb	r3, [r4, #6]
 8002af4:	2300      	movs	r3, #0
 8002af6:	0020      	movs	r0, r4
 8002af8:	71e3      	strb	r3, [r4, #7]
 8002afa:	682a      	ldr	r2, [r5, #0]
 8002afc:	686b      	ldr	r3, [r5, #4]
 8002afe:	3008      	adds	r0, #8
 8002b00:	f7ff fee2 	bl	80028c8 <put64>
 8002b04:	0020      	movs	r0, r4
 8002b06:	68a9      	ldr	r1, [r5, #8]
 8002b08:	3010      	adds	r0, #16
 8002b0a:	f7ff fed5 	bl	80028b8 <put32>
 8002b0e:	0020      	movs	r0, r4
 8002b10:	68e9      	ldr	r1, [r5, #12]
 8002b12:	3014      	adds	r0, #20
 8002b14:	f7ff fed0 	bl	80028b8 <put32>
 8002b18:	0020      	movs	r0, r4
 8002b1a:	8a2b      	ldrh	r3, [r5, #16]
 8002b1c:	301a      	adds	r0, #26
 8002b1e:	7623      	strb	r3, [r4, #24]
 8002b20:	0a1b      	lsrs	r3, r3, #8
 8002b22:	7663      	strb	r3, [r4, #25]
 8002b24:	69aa      	ldr	r2, [r5, #24]
 8002b26:	69eb      	ldr	r3, [r5, #28]
 8002b28:	f7ff fece 	bl	80028c8 <put64>
 8002b2c:	0020      	movs	r0, r4
 8002b2e:	2122      	movs	r1, #34	@ 0x22
 8002b30:	f7ff ff6e 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002b34:	1ce3      	adds	r3, r4, #3
 8002b36:	77d8      	strb	r0, [r3, #31]
 8002b38:	2324      	movs	r3, #36	@ 0x24
 8002b3a:	3404      	adds	r4, #4
 8002b3c:	0a00      	lsrs	r0, r0, #8
 8002b3e:	77e0      	strb	r0, [r4, #31]
 8002b40:	603b      	str	r3, [r7, #0]
 8002b42:	e7bc      	b.n	8002abe <aiw_encode_ticket+0xe>

08002b44 <aiw_decode_ticket>:
 8002b44:	b5f0      	push	{r4, r5, r6, r7, lr}
 8002b46:	0004      	movs	r4, r0
 8002b48:	000e      	movs	r6, r1
 8002b4a:	0015      	movs	r5, r2
 8002b4c:	b08d      	sub	sp, #52	@ 0x34
 8002b4e:	2a00      	cmp	r2, #0
 8002b50:	d103      	bne.n	8002b5a <aiw_decode_ticket+0x16>
 8002b52:	2400      	movs	r4, #0
 8002b54:	0020      	movs	r0, r4
 8002b56:	b00d      	add	sp, #52	@ 0x34
 8002b58:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8002b5a:	2220      	movs	r2, #32
 8002b5c:	2100      	movs	r1, #0
 8002b5e:	0028      	movs	r0, r5
 8002b60:	f7fd fb2f 	bl	80001c2 <memset>
 8002b64:	2c00      	cmp	r4, #0
 8002b66:	d0f4      	beq.n	8002b52 <aiw_decode_ticket+0xe>
 8002b68:	2e24      	cmp	r6, #36	@ 0x24
 8002b6a:	d1f2      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b6c:	7823      	ldrb	r3, [r4, #0]
 8002b6e:	2b4e      	cmp	r3, #78	@ 0x4e
 8002b70:	d1ef      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b72:	7863      	ldrb	r3, [r4, #1]
 8002b74:	2b4c      	cmp	r3, #76	@ 0x4c
 8002b76:	d1ec      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b78:	78a3      	ldrb	r3, [r4, #2]
 8002b7a:	2b41      	cmp	r3, #65	@ 0x41
 8002b7c:	d1e9      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b7e:	78e3      	ldrb	r3, [r4, #3]
 8002b80:	2b49      	cmp	r3, #73	@ 0x49
 8002b82:	d1e6      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b84:	7923      	ldrb	r3, [r4, #4]
 8002b86:	2b02      	cmp	r3, #2
 8002b88:	d1e3      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b8a:	7963      	ldrb	r3, [r4, #5]
 8002b8c:	2b30      	cmp	r3, #48	@ 0x30
 8002b8e:	d1e0      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b90:	79e3      	ldrb	r3, [r4, #7]
 8002b92:	79a2      	ldrb	r2, [r4, #6]
 8002b94:	021b      	lsls	r3, r3, #8
 8002b96:	4313      	orrs	r3, r2
 8002b98:	2b1a      	cmp	r3, #26
 8002b9a:	d1da      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002b9c:	2122      	movs	r1, #34	@ 0x22
 8002b9e:	0020      	movs	r0, r4
 8002ba0:	f7ff ff36 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002ba4:	1ce3      	adds	r3, r4, #3
 8002ba6:	7fda      	ldrb	r2, [r3, #31]
 8002ba8:	1d23      	adds	r3, r4, #4
 8002baa:	7fdb      	ldrb	r3, [r3, #31]
 8002bac:	021b      	lsls	r3, r3, #8
 8002bae:	4313      	orrs	r3, r2
 8002bb0:	4298      	cmp	r0, r3
 8002bb2:	d1ce      	bne.n	8002b52 <aiw_decode_ticket+0xe>
 8002bb4:	2208      	movs	r2, #8
 8002bb6:	2100      	movs	r1, #0
 8002bb8:	a808      	add	r0, sp, #32
 8002bba:	f7fd fb02 	bl	80001c2 <memset>
 8002bbe:	0020      	movs	r0, r4
 8002bc0:	3008      	adds	r0, #8
 8002bc2:	f7ff fe9c 	bl	80028fe <get64>
 8002bc6:	9000      	str	r0, [sp, #0]
 8002bc8:	9101      	str	r1, [sp, #4]
 8002bca:	0020      	movs	r0, r4
 8002bcc:	3010      	adds	r0, #16
 8002bce:	f7ff fe8a 	bl	80028e6 <get32>
 8002bd2:	9002      	str	r0, [sp, #8]
 8002bd4:	0020      	movs	r0, r4
 8002bd6:	3014      	adds	r0, #20
 8002bd8:	f7ff fe85 	bl	80028e6 <get32>
 8002bdc:	9003      	str	r0, [sp, #12]
 8002bde:	0020      	movs	r0, r4
 8002be0:	7e63      	ldrb	r3, [r4, #25]
 8002be2:	7e27      	ldrb	r7, [r4, #24]
 8002be4:	021b      	lsls	r3, r3, #8
 8002be6:	301a      	adds	r0, #26
 8002be8:	431f      	orrs	r7, r3
 8002bea:	f7ff fe88 	bl	80028fe <get64>
 8002bee:	9b00      	ldr	r3, [sp, #0]
 8002bf0:	9c01      	ldr	r4, [sp, #4]
 8002bf2:	9304      	str	r3, [sp, #16]
 8002bf4:	9405      	str	r4, [sp, #20]
 8002bf6:	9b02      	ldr	r3, [sp, #8]
 8002bf8:	ae04      	add	r6, sp, #16
 8002bfa:	9306      	str	r3, [sp, #24]
 8002bfc:	9b03      	ldr	r3, [sp, #12]
 8002bfe:	900a      	str	r0, [sp, #40]	@ 0x28
 8002c00:	910b      	str	r1, [sp, #44]	@ 0x2c
 8002c02:	0030      	movs	r0, r6
 8002c04:	9307      	str	r3, [sp, #28]
 8002c06:	8237      	strh	r7, [r6, #16]
 8002c08:	f7ff fe8c 	bl	8002924 <valid_ticket>
 8002c0c:	1e04      	subs	r4, r0, #0
 8002c0e:	d0a1      	beq.n	8002b54 <aiw_decode_ticket+0x10>
 8002c10:	2220      	movs	r2, #32
 8002c12:	0031      	movs	r1, r6
 8002c14:	0028      	movs	r0, r5
 8002c16:	f7fd facb 	bl	80001b0 <memcpy>
 8002c1a:	e79b      	b.n	8002b54 <aiw_decode_ticket+0x10>

08002c1c <aiw_encode_result>:
 8002c1c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8002c1e:	0005      	movs	r5, r0
 8002c20:	000c      	movs	r4, r1
 8002c22:	1e1f      	subs	r7, r3, #0
 8002c24:	9201      	str	r2, [sp, #4]
 8002c26:	d102      	bne.n	8002c2e <aiw_encode_result+0x12>
 8002c28:	2600      	movs	r6, #0
 8002c2a:	0030      	movs	r0, r6
 8002c2c:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8002c2e:	2300      	movs	r3, #0
 8002c30:	603b      	str	r3, [r7, #0]
 8002c32:	4299      	cmp	r1, r3
 8002c34:	d0f8      	beq.n	8002c28 <aiw_encode_result+0xc>
 8002c36:	f7ff fe8e 	bl	8002956 <valid_result>
 8002c3a:	1e06      	subs	r6, r0, #0
 8002c3c:	d0f5      	beq.n	8002c2a <aiw_encode_result+0xe>
 8002c3e:	8a2b      	ldrh	r3, [r5, #16]
 8002c40:	9901      	ldr	r1, [sp, #4]
 8002c42:	001a      	movs	r2, r3
 8002c44:	322d      	adds	r2, #45	@ 0x2d
 8002c46:	9200      	str	r2, [sp, #0]
 8002c48:	428a      	cmp	r2, r1
 8002c4a:	d8ed      	bhi.n	8002c28 <aiw_encode_result+0xc>
 8002c4c:	224e      	movs	r2, #78	@ 0x4e
 8002c4e:	0020      	movs	r0, r4
 8002c50:	7022      	strb	r2, [r4, #0]
 8002c52:	3a02      	subs	r2, #2
 8002c54:	7062      	strb	r2, [r4, #1]
 8002c56:	3a0b      	subs	r2, #11
 8002c58:	70a2      	strb	r2, [r4, #2]
 8002c5a:	3208      	adds	r2, #8
 8002c5c:	70e2      	strb	r2, [r4, #3]
 8002c5e:	3323      	adds	r3, #35	@ 0x23
 8002c60:	3a47      	subs	r2, #71	@ 0x47
 8002c62:	7122      	strb	r2, [r4, #4]
 8002c64:	71a3      	strb	r3, [r4, #6]
 8002c66:	322f      	adds	r2, #47	@ 0x2f
 8002c68:	0a1b      	lsrs	r3, r3, #8
 8002c6a:	7162      	strb	r2, [r4, #5]
 8002c6c:	71e3      	strb	r3, [r4, #7]
 8002c6e:	682a      	ldr	r2, [r5, #0]
 8002c70:	686b      	ldr	r3, [r5, #4]
 8002c72:	3008      	adds	r0, #8
 8002c74:	f7ff fe28 	bl	80028c8 <put64>
 8002c78:	0020      	movs	r0, r4
 8002c7a:	68a9      	ldr	r1, [r5, #8]
 8002c7c:	3010      	adds	r0, #16
 8002c7e:	f7ff fe1b 	bl	80028b8 <put32>
 8002c82:	0020      	movs	r0, r4
 8002c84:	68e9      	ldr	r1, [r5, #12]
 8002c86:	3014      	adds	r0, #20
 8002c88:	f7ff fe16 	bl	80028b8 <put32>
 8002c8c:	0020      	movs	r0, r4
 8002c8e:	8a2b      	ldrh	r3, [r5, #16]
 8002c90:	301a      	adds	r0, #26
 8002c92:	7623      	strb	r3, [r4, #24]
 8002c94:	0a1b      	lsrs	r3, r3, #8
 8002c96:	7663      	strb	r3, [r4, #25]
 8002c98:	69aa      	ldr	r2, [r5, #24]
 8002c9a:	69eb      	ldr	r3, [r5, #28]
 8002c9c:	f7ff fe14 	bl	80028c8 <put64>
 8002ca0:	6a2a      	ldr	r2, [r5, #32]
 8002ca2:	6a6b      	ldr	r3, [r5, #36]	@ 0x24
 8002ca4:	0020      	movs	r0, r4
 8002ca6:	3022      	adds	r0, #34	@ 0x22
 8002ca8:	f7ff fe0e 	bl	80028c8 <put64>
 8002cac:	0023      	movs	r3, r4
 8002cae:	332b      	adds	r3, #43	@ 0x2b
 8002cb0:	9301      	str	r3, [sp, #4]
 8002cb2:	002b      	movs	r3, r5
 8002cb4:	3328      	adds	r3, #40	@ 0x28
 8002cb6:	781a      	ldrb	r2, [r3, #0]
 8002cb8:	0023      	movs	r3, r4
 8002cba:	0029      	movs	r1, r5
 8002cbc:	332a      	adds	r3, #42	@ 0x2a
 8002cbe:	701a      	strb	r2, [r3, #0]
 8002cc0:	8a2a      	ldrh	r2, [r5, #16]
 8002cc2:	3129      	adds	r1, #41	@ 0x29
 8002cc4:	9801      	ldr	r0, [sp, #4]
 8002cc6:	f7fd fa73 	bl	80001b0 <memcpy>
 8002cca:	9b01      	ldr	r3, [sp, #4]
 8002ccc:	8a2d      	ldrh	r5, [r5, #16]
 8002cce:	0020      	movs	r0, r4
 8002cd0:	195d      	adds	r5, r3, r5
 8002cd2:	1b29      	subs	r1, r5, r4
 8002cd4:	f7ff fe9c 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002cd8:	9b00      	ldr	r3, [sp, #0]
 8002cda:	7028      	strb	r0, [r5, #0]
 8002cdc:	0a00      	lsrs	r0, r0, #8
 8002cde:	7068      	strb	r0, [r5, #1]
 8002ce0:	603b      	str	r3, [r7, #0]
 8002ce2:	e7a2      	b.n	8002c2a <aiw_encode_result+0xe>

08002ce4 <aiw_decode_result>:
 8002ce4:	b5f0      	push	{r4, r5, r6, r7, lr}
 8002ce6:	b0ad      	sub	sp, #180	@ 0xb4
 8002ce8:	0004      	movs	r4, r0
 8002cea:	000d      	movs	r5, r1
 8002cec:	9200      	str	r2, [sp, #0]
 8002cee:	2a00      	cmp	r2, #0
 8002cf0:	d103      	bne.n	8002cfa <aiw_decode_result+0x16>
 8002cf2:	2400      	movs	r4, #0
 8002cf4:	0020      	movs	r0, r4
 8002cf6:	b02d      	add	sp, #180	@ 0xb4
 8002cf8:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8002cfa:	22a8      	movs	r2, #168	@ 0xa8
 8002cfc:	2100      	movs	r1, #0
 8002cfe:	9800      	ldr	r0, [sp, #0]
 8002d00:	f7fd fa5f 	bl	80001c2 <memset>
 8002d04:	2c00      	cmp	r4, #0
 8002d06:	d0f4      	beq.n	8002cf2 <aiw_decode_result+0xe>
 8002d08:	002b      	movs	r3, r5
 8002d0a:	3b2d      	subs	r3, #45	@ 0x2d
 8002d0c:	2b7a      	cmp	r3, #122	@ 0x7a
 8002d0e:	d8f0      	bhi.n	8002cf2 <aiw_decode_result+0xe>
 8002d10:	7823      	ldrb	r3, [r4, #0]
 8002d12:	2b4e      	cmp	r3, #78	@ 0x4e
 8002d14:	d1ed      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002d16:	7863      	ldrb	r3, [r4, #1]
 8002d18:	2b4c      	cmp	r3, #76	@ 0x4c
 8002d1a:	d1ea      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002d1c:	78a3      	ldrb	r3, [r4, #2]
 8002d1e:	2b41      	cmp	r3, #65	@ 0x41
 8002d20:	d1e7      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002d22:	78e3      	ldrb	r3, [r4, #3]
 8002d24:	2b49      	cmp	r3, #73	@ 0x49
 8002d26:	d1e4      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002d28:	7923      	ldrb	r3, [r4, #4]
 8002d2a:	2b02      	cmp	r3, #2
 8002d2c:	d1e1      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002d2e:	7963      	ldrb	r3, [r4, #5]
 8002d30:	2b31      	cmp	r3, #49	@ 0x31
 8002d32:	d1de      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002d34:	79e3      	ldrb	r3, [r4, #7]
 8002d36:	79a2      	ldrb	r2, [r4, #6]
 8002d38:	021b      	lsls	r3, r3, #8
 8002d3a:	4313      	orrs	r3, r2
 8002d3c:	9301      	str	r3, [sp, #4]
 8002d3e:	330a      	adds	r3, #10
 8002d40:	429d      	cmp	r5, r3
 8002d42:	d1d6      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002d44:	2298      	movs	r2, #152	@ 0x98
 8002d46:	2100      	movs	r1, #0
 8002d48:	a806      	add	r0, sp, #24
 8002d4a:	f7fd fa3a 	bl	80001c2 <memset>
 8002d4e:	0020      	movs	r0, r4
 8002d50:	3008      	adds	r0, #8
 8002d52:	f7ff fdd4 	bl	80028fe <get64>
 8002d56:	9002      	str	r0, [sp, #8]
 8002d58:	9103      	str	r1, [sp, #12]
 8002d5a:	0020      	movs	r0, r4
 8002d5c:	3010      	adds	r0, #16
 8002d5e:	f7ff fdc2 	bl	80028e6 <get32>
 8002d62:	9004      	str	r0, [sp, #16]
 8002d64:	0020      	movs	r0, r4
 8002d66:	3014      	adds	r0, #20
 8002d68:	f7ff fdbd 	bl	80028e6 <get32>
 8002d6c:	9005      	str	r0, [sp, #20]
 8002d6e:	0020      	movs	r0, r4
 8002d70:	7e66      	ldrb	r6, [r4, #25]
 8002d72:	7e23      	ldrb	r3, [r4, #24]
 8002d74:	0236      	lsls	r6, r6, #8
 8002d76:	431e      	orrs	r6, r3
 8002d78:	af02      	add	r7, sp, #8
 8002d7a:	301a      	adds	r0, #26
 8002d7c:	823e      	strh	r6, [r7, #16]
 8002d7e:	f7ff fdbe 	bl	80028fe <get64>
 8002d82:	9008      	str	r0, [sp, #32]
 8002d84:	9109      	str	r1, [sp, #36]	@ 0x24
 8002d86:	0020      	movs	r0, r4
 8002d88:	3022      	adds	r0, #34	@ 0x22
 8002d8a:	f7ff fdb8 	bl	80028fe <get64>
 8002d8e:	0023      	movs	r3, r4
 8002d90:	332a      	adds	r3, #42	@ 0x2a
 8002d92:	781a      	ldrb	r2, [r3, #0]
 8002d94:	ab0c      	add	r3, sp, #48	@ 0x30
 8002d96:	701a      	strb	r2, [r3, #0]
 8002d98:	1e73      	subs	r3, r6, #1
 8002d9a:	900a      	str	r0, [sp, #40]	@ 0x28
 8002d9c:	910b      	str	r1, [sp, #44]	@ 0x2c
 8002d9e:	2b79      	cmp	r3, #121	@ 0x79
 8002da0:	d8a7      	bhi.n	8002cf2 <aiw_decode_result+0xe>
 8002da2:	9a01      	ldr	r2, [sp, #4]
 8002da4:	3324      	adds	r3, #36	@ 0x24
 8002da6:	429a      	cmp	r2, r3
 8002da8:	d1a3      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002daa:	3d02      	subs	r5, #2
 8002dac:	0029      	movs	r1, r5
 8002dae:	0020      	movs	r0, r4
 8002db0:	f7ff fe2e 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002db4:	5d62      	ldrb	r2, [r4, r5]
 8002db6:	1965      	adds	r5, r4, r5
 8002db8:	786b      	ldrb	r3, [r5, #1]
 8002dba:	021b      	lsls	r3, r3, #8
 8002dbc:	4313      	orrs	r3, r2
 8002dbe:	4298      	cmp	r0, r3
 8002dc0:	d197      	bne.n	8002cf2 <aiw_decode_result+0xe>
 8002dc2:	0021      	movs	r1, r4
 8002dc4:	2029      	movs	r0, #41	@ 0x29
 8002dc6:	0032      	movs	r2, r6
 8002dc8:	312b      	adds	r1, #43	@ 0x2b
 8002dca:	1838      	adds	r0, r7, r0
 8002dcc:	f7fd f9f0 	bl	80001b0 <memcpy>
 8002dd0:	0038      	movs	r0, r7
 8002dd2:	f7ff fdc0 	bl	8002956 <valid_result>
 8002dd6:	1e04      	subs	r4, r0, #0
 8002dd8:	d100      	bne.n	8002ddc <aiw_decode_result+0xf8>
 8002dda:	e78b      	b.n	8002cf4 <aiw_decode_result+0x10>
 8002ddc:	22a8      	movs	r2, #168	@ 0xa8
 8002dde:	0039      	movs	r1, r7
 8002de0:	9800      	ldr	r0, [sp, #0]
 8002de2:	f7fd f9e5 	bl	80001b0 <memcpy>
 8002de6:	e785      	b.n	8002cf4 <aiw_decode_result+0x10>

08002de8 <aiw_encode_ui_session_open>:
 8002de8:	b570      	push	{r4, r5, r6, lr}
 8002dea:	000c      	movs	r4, r1
 8002dec:	1e1d      	subs	r5, r3, #0
 8002dee:	d101      	bne.n	8002df4 <aiw_encode_ui_session_open+0xc>
 8002df0:	2000      	movs	r0, #0
 8002df2:	bd70      	pop	{r4, r5, r6, pc}
 8002df4:	2100      	movs	r1, #0
 8002df6:	6019      	str	r1, [r3, #0]
 8002df8:	428c      	cmp	r4, r1
 8002dfa:	d0f9      	beq.n	8002df0 <aiw_encode_ui_session_open+0x8>
 8002dfc:	4288      	cmp	r0, r1
 8002dfe:	d0f7      	beq.n	8002df0 <aiw_encode_ui_session_open+0x8>
 8002e00:	6803      	ldr	r3, [r0, #0]
 8002e02:	6846      	ldr	r6, [r0, #4]
 8002e04:	4333      	orrs	r3, r6
 8002e06:	428b      	cmp	r3, r1
 8002e08:	d0f2      	beq.n	8002df0 <aiw_encode_ui_session_open+0x8>
 8002e0a:	2a11      	cmp	r2, #17
 8002e0c:	d9f0      	bls.n	8002df0 <aiw_encode_ui_session_open+0x8>
 8002e0e:	234e      	movs	r3, #78	@ 0x4e
 8002e10:	7023      	strb	r3, [r4, #0]
 8002e12:	3b02      	subs	r3, #2
 8002e14:	7063      	strb	r3, [r4, #1]
 8002e16:	3b0b      	subs	r3, #11
 8002e18:	70a3      	strb	r3, [r4, #2]
 8002e1a:	3308      	adds	r3, #8
 8002e1c:	70e3      	strb	r3, [r4, #3]
 8002e1e:	3b47      	subs	r3, #71	@ 0x47
 8002e20:	7123      	strb	r3, [r4, #4]
 8002e22:	3330      	adds	r3, #48	@ 0x30
 8002e24:	7163      	strb	r3, [r4, #5]
 8002e26:	3b2a      	subs	r3, #42	@ 0x2a
 8002e28:	71e1      	strb	r1, [r4, #7]
 8002e2a:	71a3      	strb	r3, [r4, #6]
 8002e2c:	c80c      	ldmia	r0!, {r2, r3}
 8002e2e:	0020      	movs	r0, r4
 8002e30:	3008      	adds	r0, #8
 8002e32:	f7ff fd49 	bl	80028c8 <put64>
 8002e36:	2110      	movs	r1, #16
 8002e38:	0020      	movs	r0, r4
 8002e3a:	f7ff fde9 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002e3e:	2312      	movs	r3, #18
 8002e40:	7420      	strb	r0, [r4, #16]
 8002e42:	0a00      	lsrs	r0, r0, #8
 8002e44:	7460      	strb	r0, [r4, #17]
 8002e46:	2001      	movs	r0, #1
 8002e48:	602b      	str	r3, [r5, #0]
 8002e4a:	e7d2      	b.n	8002df2 <aiw_encode_ui_session_open+0xa>

08002e4c <aiw_decode_ui_session_open>:
 8002e4c:	b570      	push	{r4, r5, r6, lr}
 8002e4e:	0005      	movs	r5, r0
 8002e50:	000e      	movs	r6, r1
 8002e52:	0014      	movs	r4, r2
 8002e54:	1e10      	subs	r0, r2, #0
 8002e56:	d014      	beq.n	8002e82 <aiw_decode_ui_session_open+0x36>
 8002e58:	2208      	movs	r2, #8
 8002e5a:	2100      	movs	r1, #0
 8002e5c:	f7fd f9b1 	bl	80001c2 <memset>
 8002e60:	2308      	movs	r3, #8
 8002e62:	2232      	movs	r2, #50	@ 0x32
 8002e64:	0031      	movs	r1, r6
 8002e66:	0028      	movs	r0, r5
 8002e68:	f7ff fdf2 	bl	8002a50 <packet_matches>
 8002e6c:	2800      	cmp	r0, #0
 8002e6e:	d008      	beq.n	8002e82 <aiw_decode_ui_session_open+0x36>
 8002e70:	0028      	movs	r0, r5
 8002e72:	3008      	adds	r0, #8
 8002e74:	f7ff fd43 	bl	80028fe <get64>
 8002e78:	c403      	stmia	r4!, {r0, r1}
 8002e7a:	4308      	orrs	r0, r1
 8002e7c:	1e43      	subs	r3, r0, #1
 8002e7e:	4198      	sbcs	r0, r3
 8002e80:	b2c0      	uxtb	r0, r0
 8002e82:	bd70      	pop	{r4, r5, r6, pc}

08002e84 <aiw_encode_ui_command>:
 8002e84:	b570      	push	{r4, r5, r6, lr}
 8002e86:	0005      	movs	r5, r0
 8002e88:	000c      	movs	r4, r1
 8002e8a:	1e1e      	subs	r6, r3, #0
 8002e8c:	d101      	bne.n	8002e92 <aiw_encode_ui_command+0xe>
 8002e8e:	2000      	movs	r0, #0
 8002e90:	bd70      	pop	{r4, r5, r6, pc}
 8002e92:	2100      	movs	r1, #0
 8002e94:	6019      	str	r1, [r3, #0]
 8002e96:	428c      	cmp	r4, r1
 8002e98:	d0f9      	beq.n	8002e8e <aiw_encode_ui_command+0xa>
 8002e9a:	4288      	cmp	r0, r1
 8002e9c:	d0f7      	beq.n	8002e8e <aiw_encode_ui_command+0xa>
 8002e9e:	6803      	ldr	r3, [r0, #0]
 8002ea0:	6840      	ldr	r0, [r0, #4]
 8002ea2:	4303      	orrs	r3, r0
 8002ea4:	428b      	cmp	r3, r1
 8002ea6:	d0f2      	beq.n	8002e8e <aiw_encode_ui_command+0xa>
 8002ea8:	68ab      	ldr	r3, [r5, #8]
 8002eaa:	428b      	cmp	r3, r1
 8002eac:	d0ef      	beq.n	8002e8e <aiw_encode_ui_command+0xa>
 8002eae:	7b2b      	ldrb	r3, [r5, #12]
 8002eb0:	2b08      	cmp	r3, #8
 8002eb2:	d8ec      	bhi.n	8002e8e <aiw_encode_ui_command+0xa>
 8002eb4:	2a16      	cmp	r2, #22
 8002eb6:	d9ea      	bls.n	8002e8e <aiw_encode_ui_command+0xa>
 8002eb8:	234e      	movs	r3, #78	@ 0x4e
 8002eba:	0020      	movs	r0, r4
 8002ebc:	7023      	strb	r3, [r4, #0]
 8002ebe:	3b02      	subs	r3, #2
 8002ec0:	7063      	strb	r3, [r4, #1]
 8002ec2:	3b0b      	subs	r3, #11
 8002ec4:	70a3      	strb	r3, [r4, #2]
 8002ec6:	3308      	adds	r3, #8
 8002ec8:	70e3      	strb	r3, [r4, #3]
 8002eca:	3b47      	subs	r3, #71	@ 0x47
 8002ecc:	7123      	strb	r3, [r4, #4]
 8002ece:	3331      	adds	r3, #49	@ 0x31
 8002ed0:	7163      	strb	r3, [r4, #5]
 8002ed2:	3b26      	subs	r3, #38	@ 0x26
 8002ed4:	71e1      	strb	r1, [r4, #7]
 8002ed6:	71a3      	strb	r3, [r4, #6]
 8002ed8:	682a      	ldr	r2, [r5, #0]
 8002eda:	686b      	ldr	r3, [r5, #4]
 8002edc:	3008      	adds	r0, #8
 8002ede:	f7ff fcf3 	bl	80028c8 <put64>
 8002ee2:	0020      	movs	r0, r4
 8002ee4:	68a9      	ldr	r1, [r5, #8]
 8002ee6:	3010      	adds	r0, #16
 8002ee8:	f7ff fce6 	bl	80028b8 <put32>
 8002eec:	7b2b      	ldrb	r3, [r5, #12]
 8002eee:	2115      	movs	r1, #21
 8002ef0:	7523      	strb	r3, [r4, #20]
 8002ef2:	0020      	movs	r0, r4
 8002ef4:	f7ff fd8c 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002ef8:	2317      	movs	r3, #23
 8002efa:	7560      	strb	r0, [r4, #21]
 8002efc:	0a00      	lsrs	r0, r0, #8
 8002efe:	75a0      	strb	r0, [r4, #22]
 8002f00:	2001      	movs	r0, #1
 8002f02:	6033      	str	r3, [r6, #0]
 8002f04:	e7c4      	b.n	8002e90 <aiw_encode_ui_command+0xc>

08002f06 <aiw_decode_ui_command>:
 8002f06:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8002f08:	0005      	movs	r5, r0
 8002f0a:	000e      	movs	r6, r1
 8002f0c:	0014      	movs	r4, r2
 8002f0e:	1e10      	subs	r0, r2, #0
 8002f10:	d020      	beq.n	8002f54 <aiw_decode_ui_command+0x4e>
 8002f12:	2210      	movs	r2, #16
 8002f14:	2100      	movs	r1, #0
 8002f16:	f7fd f954 	bl	80001c2 <memset>
 8002f1a:	230d      	movs	r3, #13
 8002f1c:	2233      	movs	r2, #51	@ 0x33
 8002f1e:	0031      	movs	r1, r6
 8002f20:	0028      	movs	r0, r5
 8002f22:	f7ff fd95 	bl	8002a50 <packet_matches>
 8002f26:	2800      	cmp	r0, #0
 8002f28:	d014      	beq.n	8002f54 <aiw_decode_ui_command+0x4e>
 8002f2a:	0028      	movs	r0, r5
 8002f2c:	3008      	adds	r0, #8
 8002f2e:	f7ff fce6 	bl	80028fe <get64>
 8002f32:	0006      	movs	r6, r0
 8002f34:	6020      	str	r0, [r4, #0]
 8002f36:	0028      	movs	r0, r5
 8002f38:	6061      	str	r1, [r4, #4]
 8002f3a:	3010      	adds	r0, #16
 8002f3c:	000f      	movs	r7, r1
 8002f3e:	f7ff fcd2 	bl	80028e6 <get32>
 8002f42:	2300      	movs	r3, #0
 8002f44:	60a0      	str	r0, [r4, #8]
 8002f46:	7d2a      	ldrb	r2, [r5, #20]
 8002f48:	433e      	orrs	r6, r7
 8002f4a:	7322      	strb	r2, [r4, #12]
 8002f4c:	429e      	cmp	r6, r3
 8002f4e:	d102      	bne.n	8002f56 <aiw_decode_ui_command+0x50>
 8002f50:	2300      	movs	r3, #0
 8002f52:	0018      	movs	r0, r3
 8002f54:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8002f56:	2800      	cmp	r0, #0
 8002f58:	d0fa      	beq.n	8002f50 <aiw_decode_ui_command+0x4a>
 8002f5a:	2108      	movs	r1, #8
 8002f5c:	4291      	cmp	r1, r2
 8002f5e:	415b      	adcs	r3, r3
 8002f60:	e7f7      	b.n	8002f52 <aiw_decode_ui_command+0x4c>

08002f62 <aiw_encode_ui_ack>:
 8002f62:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8002f64:	0005      	movs	r5, r0
 8002f66:	000c      	movs	r4, r1
 8002f68:	1e1f      	subs	r7, r3, #0
 8002f6a:	9201      	str	r2, [sp, #4]
 8002f6c:	d102      	bne.n	8002f74 <aiw_encode_ui_ack+0x12>
 8002f6e:	2600      	movs	r6, #0
 8002f70:	0030      	movs	r0, r6
 8002f72:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8002f74:	2300      	movs	r3, #0
 8002f76:	603b      	str	r3, [r7, #0]
 8002f78:	4299      	cmp	r1, r3
 8002f7a:	d0f8      	beq.n	8002f6e <aiw_encode_ui_ack+0xc>
 8002f7c:	f7ff fd1b 	bl	80029b6 <valid_ui_ack>
 8002f80:	1e06      	subs	r6, r0, #0
 8002f82:	d0f5      	beq.n	8002f70 <aiw_encode_ui_ack+0xe>
 8002f84:	9a01      	ldr	r2, [sp, #4]
 8002f86:	2a1c      	cmp	r2, #28
 8002f88:	d9f1      	bls.n	8002f6e <aiw_encode_ui_ack+0xc>
 8002f8a:	234e      	movs	r3, #78	@ 0x4e
 8002f8c:	7023      	strb	r3, [r4, #0]
 8002f8e:	3b02      	subs	r3, #2
 8002f90:	7063      	strb	r3, [r4, #1]
 8002f92:	3b0b      	subs	r3, #11
 8002f94:	70a3      	strb	r3, [r4, #2]
 8002f96:	3308      	adds	r3, #8
 8002f98:	70e3      	strb	r3, [r4, #3]
 8002f9a:	3b47      	subs	r3, #71	@ 0x47
 8002f9c:	7123      	strb	r3, [r4, #4]
 8002f9e:	3332      	adds	r3, #50	@ 0x32
 8002fa0:	7163      	strb	r3, [r4, #5]
 8002fa2:	3b21      	subs	r3, #33	@ 0x21
 8002fa4:	71a3      	strb	r3, [r4, #6]
 8002fa6:	2300      	movs	r3, #0
 8002fa8:	0020      	movs	r0, r4
 8002faa:	71e3      	strb	r3, [r4, #7]
 8002fac:	682a      	ldr	r2, [r5, #0]
 8002fae:	686b      	ldr	r3, [r5, #4]
 8002fb0:	3008      	adds	r0, #8
 8002fb2:	f7ff fc89 	bl	80028c8 <put64>
 8002fb6:	0020      	movs	r0, r4
 8002fb8:	68a9      	ldr	r1, [r5, #8]
 8002fba:	3010      	adds	r0, #16
 8002fbc:	f7ff fc7c 	bl	80028b8 <put32>
 8002fc0:	0020      	movs	r0, r4
 8002fc2:	7b2b      	ldrb	r3, [r5, #12]
 8002fc4:	3017      	adds	r0, #23
 8002fc6:	7523      	strb	r3, [r4, #20]
 8002fc8:	7b6b      	ldrb	r3, [r5, #13]
 8002fca:	7563      	strb	r3, [r4, #21]
 8002fcc:	7bab      	ldrb	r3, [r5, #14]
 8002fce:	75a3      	strb	r3, [r4, #22]
 8002fd0:	6929      	ldr	r1, [r5, #16]
 8002fd2:	f7ff fc71 	bl	80028b8 <put32>
 8002fd6:	211b      	movs	r1, #27
 8002fd8:	0020      	movs	r0, r4
 8002fda:	f7ff fd19 	bl	8002a10 <aiw_crc16_ccitt_false>
 8002fde:	231d      	movs	r3, #29
 8002fe0:	76e0      	strb	r0, [r4, #27]
 8002fe2:	0a00      	lsrs	r0, r0, #8
 8002fe4:	7720      	strb	r0, [r4, #28]
 8002fe6:	603b      	str	r3, [r7, #0]
 8002fe8:	e7c2      	b.n	8002f70 <aiw_encode_ui_ack+0xe>

08002fea <aiw_decode_ui_ack>:
 8002fea:	b570      	push	{r4, r5, r6, lr}
 8002fec:	0005      	movs	r5, r0
 8002fee:	000e      	movs	r6, r1
 8002ff0:	1e14      	subs	r4, r2, #0
 8002ff2:	d101      	bne.n	8002ff8 <aiw_decode_ui_ack+0xe>
 8002ff4:	2000      	movs	r0, #0
 8002ff6:	bd70      	pop	{r4, r5, r6, pc}
 8002ff8:	2218      	movs	r2, #24
 8002ffa:	2100      	movs	r1, #0
 8002ffc:	0020      	movs	r0, r4
 8002ffe:	f7fd f8e0 	bl	80001c2 <memset>
 8003002:	2313      	movs	r3, #19
 8003004:	2234      	movs	r2, #52	@ 0x34
 8003006:	0031      	movs	r1, r6
 8003008:	0028      	movs	r0, r5
 800300a:	f7ff fd21 	bl	8002a50 <packet_matches>
 800300e:	2800      	cmp	r0, #0
 8003010:	d0f1      	beq.n	8002ff6 <aiw_decode_ui_ack+0xc>
 8003012:	0028      	movs	r0, r5
 8003014:	3008      	adds	r0, #8
 8003016:	f7ff fc72 	bl	80028fe <get64>
 800301a:	6020      	str	r0, [r4, #0]
 800301c:	6061      	str	r1, [r4, #4]
 800301e:	0028      	movs	r0, r5
 8003020:	3010      	adds	r0, #16
 8003022:	f7ff fc60 	bl	80028e6 <get32>
 8003026:	60a0      	str	r0, [r4, #8]
 8003028:	7d2b      	ldrb	r3, [r5, #20]
 800302a:	2b07      	cmp	r3, #7
 800302c:	d8e2      	bhi.n	8002ff4 <aiw_decode_ui_ack+0xa>
 800302e:	0028      	movs	r0, r5
 8003030:	7323      	strb	r3, [r4, #12]
 8003032:	7d6b      	ldrb	r3, [r5, #21]
 8003034:	3017      	adds	r0, #23
 8003036:	7363      	strb	r3, [r4, #13]
 8003038:	7dab      	ldrb	r3, [r5, #22]
 800303a:	73a3      	strb	r3, [r4, #14]
 800303c:	f7ff fc53 	bl	80028e6 <get32>
 8003040:	6120      	str	r0, [r4, #16]
 8003042:	0020      	movs	r0, r4
 8003044:	f7ff fcb7 	bl	80029b6 <valid_ui_ack>
 8003048:	e7d5      	b.n	8002ff6 <aiw_decode_ui_ack+0xc>

0800304a <aiw_decode_message>:
 800304a:	b570      	push	{r4, r5, r6, lr}
 800304c:	0005      	movs	r5, r0
 800304e:	000e      	movs	r6, r1
 8003050:	1e14      	subs	r4, r2, #0
 8003052:	d001      	beq.n	8003058 <aiw_decode_message+0xe>
 8003054:	2800      	cmp	r0, #0
 8003056:	d101      	bne.n	800305c <aiw_decode_message+0x12>
 8003058:	2000      	movs	r0, #0
 800305a:	bd70      	pop	{r4, r5, r6, pc}
 800305c:	2907      	cmp	r1, #7
 800305e:	d9fb      	bls.n	8003058 <aiw_decode_message+0xe>
 8003060:	22b0      	movs	r2, #176	@ 0xb0
 8003062:	2100      	movs	r1, #0
 8003064:	0020      	movs	r0, r4
 8003066:	f7fd f8ac 	bl	80001c2 <memset>
 800306a:	7968      	ldrb	r0, [r5, #5]
 800306c:	3831      	subs	r0, #49	@ 0x31
 800306e:	2803      	cmp	r0, #3
 8003070:	d8f2      	bhi.n	8003058 <aiw_decode_message+0xe>
 8003072:	0022      	movs	r2, r4
 8003074:	3208      	adds	r2, #8
 8003076:	f002 fb31 	bl	80056dc <__gnu_thumb1_case_uqi>
 800307a:	0902      	.short	0x0902
 800307c:	1710      	.short	0x1710
 800307e:	2300      	movs	r3, #0
 8003080:	0031      	movs	r1, r6
 8003082:	0028      	movs	r0, r5
 8003084:	7023      	strb	r3, [r4, #0]
 8003086:	f7ff fe2d 	bl	8002ce4 <aiw_decode_result>
 800308a:	e7e6      	b.n	800305a <aiw_decode_message+0x10>
 800308c:	2301      	movs	r3, #1
 800308e:	0031      	movs	r1, r6
 8003090:	0028      	movs	r0, r5
 8003092:	7023      	strb	r3, [r4, #0]
 8003094:	f7ff feda 	bl	8002e4c <aiw_decode_ui_session_open>
 8003098:	e7df      	b.n	800305a <aiw_decode_message+0x10>
 800309a:	2302      	movs	r3, #2
 800309c:	0031      	movs	r1, r6
 800309e:	0028      	movs	r0, r5
 80030a0:	7023      	strb	r3, [r4, #0]
 80030a2:	f7ff ff30 	bl	8002f06 <aiw_decode_ui_command>
 80030a6:	e7d8      	b.n	800305a <aiw_decode_message+0x10>
 80030a8:	2303      	movs	r3, #3
 80030aa:	0031      	movs	r1, r6
 80030ac:	0028      	movs	r0, r5
 80030ae:	7023      	strb	r3, [r4, #0]
 80030b0:	f7ff ff9b 	bl	8002fea <aiw_decode_ui_ack>
 80030b4:	e7d1      	b.n	800305a <aiw_decode_message+0x10>
 80030b6:	46c0      	nop			@ (mov r8, r8)

080030b8 <drop_prefix.constprop.0>:
 80030b8:	b510      	push	{r4, lr}
 80030ba:	0004      	movs	r4, r0
 80030bc:	34a8      	adds	r4, #168	@ 0xa8
 80030be:	8823      	ldrh	r3, [r4, #0]
 80030c0:	2b00      	cmp	r3, #0
 80030c2:	d00f      	beq.n	80030e4 <drop_prefix.constprop.0+0x2c>
 80030c4:	0002      	movs	r2, r0
 80030c6:	3b01      	subs	r3, #1
 80030c8:	b29b      	uxth	r3, r3
 80030ca:	1a11      	subs	r1, r2, r0
 80030cc:	b289      	uxth	r1, r1
 80030ce:	428b      	cmp	r3, r1
 80030d0:	d809      	bhi.n	80030e6 <drop_prefix.constprop.0+0x2e>
 80030d2:	0002      	movs	r2, r0
 80030d4:	32c4      	adds	r2, #196	@ 0xc4
 80030d6:	8023      	strh	r3, [r4, #0]
 80030d8:	6813      	ldr	r3, [r2, #0]
 80030da:	30aa      	adds	r0, #170	@ 0xaa
 80030dc:	3301      	adds	r3, #1
 80030de:	6013      	str	r3, [r2, #0]
 80030e0:	2300      	movs	r3, #0
 80030e2:	8003      	strh	r3, [r0, #0]
 80030e4:	bd10      	pop	{r4, pc}
 80030e6:	7851      	ldrb	r1, [r2, #1]
 80030e8:	7011      	strb	r1, [r2, #0]
 80030ea:	3201      	adds	r2, #1
 80030ec:	e7ed      	b.n	80030ca <drop_prefix.constprop.0+0x12>

080030ee <aiw_stream_init>:
 80030ee:	b570      	push	{r4, r5, r6, lr}
 80030f0:	0004      	movs	r4, r0
 80030f2:	000d      	movs	r5, r1
 80030f4:	2800      	cmp	r0, #0
 80030f6:	d101      	bne.n	80030fc <aiw_stream_init+0xe>
 80030f8:	2000      	movs	r0, #0
 80030fa:	bd70      	pop	{r4, r5, r6, pc}
 80030fc:	4a05      	ldr	r2, [pc, #20]	@ (8003114 <aiw_stream_init+0x26>)
 80030fe:	1e4b      	subs	r3, r1, #1
 8003100:	4293      	cmp	r3, r2
 8003102:	d8f9      	bhi.n	80030f8 <aiw_stream_init+0xa>
 8003104:	22cc      	movs	r2, #204	@ 0xcc
 8003106:	2100      	movs	r1, #0
 8003108:	34b0      	adds	r4, #176	@ 0xb0
 800310a:	f7fd f85a 	bl	80001c2 <memset>
 800310e:	2001      	movs	r0, #1
 8003110:	6025      	str	r5, [r4, #0]
 8003112:	e7f2      	b.n	80030fa <aiw_stream_init+0xc>
 8003114:	7ffffffd 	.word	0x7ffffffd

08003118 <aiw_stream_abort>:
 8003118:	b510      	push	{r4, lr}
 800311a:	2800      	cmp	r0, #0
 800311c:	d00f      	beq.n	800313e <aiw_stream_abort+0x26>
 800311e:	0002      	movs	r2, r0
 8003120:	32a8      	adds	r2, #168	@ 0xa8
 8003122:	8814      	ldrh	r4, [r2, #0]
 8003124:	2c00      	cmp	r4, #0
 8003126:	d00a      	beq.n	800313e <aiw_stream_abort+0x26>
 8003128:	0001      	movs	r1, r0
 800312a:	31c4      	adds	r1, #196	@ 0xc4
 800312c:	680b      	ldr	r3, [r1, #0]
 800312e:	30c8      	adds	r0, #200	@ 0xc8
 8003130:	191b      	adds	r3, r3, r4
 8003132:	600b      	str	r3, [r1, #0]
 8003134:	2300      	movs	r3, #0
 8003136:	6013      	str	r3, [r2, #0]
 8003138:	6803      	ldr	r3, [r0, #0]
 800313a:	3301      	adds	r3, #1
 800313c:	6003      	str	r3, [r0, #0]
 800313e:	bd10      	pop	{r4, pc}

08003140 <aiw_stream_push_message>:
 8003140:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8003142:	0004      	movs	r4, r0
 8003144:	0017      	movs	r7, r2
 8003146:	001e      	movs	r6, r3
 8003148:	9101      	str	r1, [sp, #4]
 800314a:	2800      	cmp	r0, #0
 800314c:	d100      	bne.n	8003150 <aiw_stream_push_message+0x10>
 800314e:	e08e      	b.n	800326e <aiw_stream_push_message+0x12e>
 8003150:	2b00      	cmp	r3, #0
 8003152:	d100      	bne.n	8003156 <aiw_stream_push_message+0x16>
 8003154:	e08b      	b.n	800326e <aiw_stream_push_message+0x12e>
 8003156:	0003      	movs	r3, r0
 8003158:	33b0      	adds	r3, #176	@ 0xb0
 800315a:	6819      	ldr	r1, [r3, #0]
 800315c:	2900      	cmp	r1, #0
 800315e:	d100      	bne.n	8003162 <aiw_stream_push_message+0x22>
 8003160:	e085      	b.n	800326e <aiw_stream_push_message+0x12e>
 8003162:	0005      	movs	r5, r0
 8003164:	35a8      	adds	r5, #168	@ 0xa8
 8003166:	882b      	ldrh	r3, [r5, #0]
 8003168:	2b00      	cmp	r3, #0
 800316a:	d011      	beq.n	8003190 <aiw_stream_push_message+0x50>
 800316c:	0002      	movs	r2, r0
 800316e:	32ac      	adds	r2, #172	@ 0xac
 8003170:	6812      	ldr	r2, [r2, #0]
 8003172:	1aba      	subs	r2, r7, r2
 8003174:	4291      	cmp	r1, r2
 8003176:	d825      	bhi.n	80031c4 <aiw_stream_push_message+0x84>
 8003178:	0001      	movs	r1, r0
 800317a:	31c4      	adds	r1, #196	@ 0xc4
 800317c:	680a      	ldr	r2, [r1, #0]
 800317e:	18d3      	adds	r3, r2, r3
 8003180:	600b      	str	r3, [r1, #0]
 8003182:	0002      	movs	r2, r0
 8003184:	2300      	movs	r3, #0
 8003186:	32c0      	adds	r2, #192	@ 0xc0
 8003188:	602b      	str	r3, [r5, #0]
 800318a:	6813      	ldr	r3, [r2, #0]
 800318c:	3301      	adds	r3, #1
 800318e:	6013      	str	r3, [r2, #0]
 8003190:	882b      	ldrh	r3, [r5, #0]
 8003192:	1c5a      	adds	r2, r3, #1
 8003194:	802a      	strh	r2, [r5, #0]
 8003196:	9a01      	ldr	r2, [sp, #4]
 8003198:	54e2      	strb	r2, [r4, r3]
 800319a:	0023      	movs	r3, r4
 800319c:	33ac      	adds	r3, #172	@ 0xac
 800319e:	601f      	str	r7, [r3, #0]
 80031a0:	882b      	ldrh	r3, [r5, #0]
 80031a2:	2b00      	cmp	r3, #0
 80031a4:	d015      	beq.n	80031d2 <aiw_stream_push_message+0x92>
 80031a6:	1c1a      	adds	r2, r3, #0
 80031a8:	2b04      	cmp	r3, #4
 80031aa:	d900      	bls.n	80031ae <aiw_stream_push_message+0x6e>
 80031ac:	2204      	movs	r2, #4
 80031ae:	0020      	movs	r0, r4
 80031b0:	4930      	ldr	r1, [pc, #192]	@ (8003274 <aiw_stream_push_message+0x134>)
 80031b2:	b292      	uxth	r2, r2
 80031b4:	f7fd f80d 	bl	80001d2 <memcmp>
 80031b8:	2800      	cmp	r0, #0
 80031ba:	d00a      	beq.n	80031d2 <aiw_stream_push_message+0x92>
 80031bc:	0020      	movs	r0, r4
 80031be:	f7ff ff7b 	bl	80030b8 <drop_prefix.constprop.0>
 80031c2:	e7ed      	b.n	80031a0 <aiw_stream_push_message+0x60>
 80031c4:	2ba6      	cmp	r3, #166	@ 0xa6
 80031c6:	d9e3      	bls.n	8003190 <aiw_stream_push_message+0x50>
 80031c8:	f7ff ff76 	bl	80030b8 <drop_prefix.constprop.0>
 80031cc:	0022      	movs	r2, r4
 80031ce:	32b8      	adds	r2, #184	@ 0xb8
 80031d0:	e7db      	b.n	800318a <aiw_stream_push_message+0x4a>
 80031d2:	882a      	ldrh	r2, [r5, #0]
 80031d4:	2a07      	cmp	r2, #7
 80031d6:	d94a      	bls.n	800326e <aiw_stream_push_message+0x12e>
 80031d8:	7923      	ldrb	r3, [r4, #4]
 80031da:	2b02      	cmp	r3, #2
 80031dc:	d10c      	bne.n	80031f8 <aiw_stream_push_message+0xb8>
 80031de:	7960      	ldrb	r0, [r4, #5]
 80031e0:	88e1      	ldrh	r1, [r4, #6]
 80031e2:	3831      	subs	r0, #49	@ 0x31
 80031e4:	2803      	cmp	r0, #3
 80031e6:	d807      	bhi.n	80031f8 <aiw_stream_push_message+0xb8>
 80031e8:	f002 fa78 	bl	80056dc <__gnu_thumb1_case_uqi>
 80031ec:	38300c02 	.word	0x38300c02
 80031f0:	000b      	movs	r3, r1
 80031f2:	3b24      	subs	r3, #36	@ 0x24
 80031f4:	2b79      	cmp	r3, #121	@ 0x79
 80031f6:	d907      	bls.n	8003208 <aiw_stream_push_message+0xc8>
 80031f8:	0022      	movs	r2, r4
 80031fa:	32b8      	adds	r2, #184	@ 0xb8
 80031fc:	6813      	ldr	r3, [r2, #0]
 80031fe:	3301      	adds	r3, #1
 8003200:	6013      	str	r3, [r2, #0]
 8003202:	e7db      	b.n	80031bc <aiw_stream_push_message+0x7c>
 8003204:	2908      	cmp	r1, #8
 8003206:	d1f7      	bne.n	80031f8 <aiw_stream_push_message+0xb8>
 8003208:	0027      	movs	r7, r4
 800320a:	310a      	adds	r1, #10
 800320c:	b289      	uxth	r1, r1
 800320e:	37aa      	adds	r7, #170	@ 0xaa
 8003210:	8039      	strh	r1, [r7, #0]
 8003212:	428a      	cmp	r2, r1
 8003214:	d32b      	bcc.n	800326e <aiw_stream_push_message+0x12e>
 8003216:	0032      	movs	r2, r6
 8003218:	0020      	movs	r0, r4
 800321a:	f7ff ff16 	bl	800304a <aiw_decode_message>
 800321e:	0022      	movs	r2, r4
 8003220:	2800      	cmp	r0, #0
 8003222:	d022      	beq.n	800326a <aiw_stream_push_message+0x12a>
 8003224:	32b4      	adds	r2, #180	@ 0xb4
 8003226:	6813      	ldr	r3, [r2, #0]
 8003228:	3301      	adds	r3, #1
 800322a:	6013      	str	r3, [r2, #0]
 800322c:	883a      	ldrh	r2, [r7, #0]
 800322e:	882b      	ldrh	r3, [r5, #0]
 8003230:	b291      	uxth	r1, r2
 8003232:	4299      	cmp	r1, r3
 8003234:	d900      	bls.n	8003238 <aiw_stream_push_message+0xf8>
 8003236:	1c1a      	adds	r2, r3, #0
 8003238:	b292      	uxth	r2, r2
 800323a:	1a9b      	subs	r3, r3, r2
 800323c:	b29b      	uxth	r3, r3
 800323e:	18e1      	adds	r1, r4, r3
 8003240:	428c      	cmp	r4, r1
 8003242:	d10e      	bne.n	8003262 <aiw_stream_push_message+0x122>
 8003244:	802b      	strh	r3, [r5, #0]
 8003246:	2300      	movs	r3, #0
 8003248:	803b      	strh	r3, [r7, #0]
 800324a:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 800324c:	000b      	movs	r3, r1
 800324e:	3b0d      	subs	r3, #13
 8003250:	4258      	negs	r0, r3
 8003252:	4143      	adcs	r3, r0
 8003254:	b2db      	uxtb	r3, r3
 8003256:	2b00      	cmp	r3, #0
 8003258:	d1d6      	bne.n	8003208 <aiw_stream_push_message+0xc8>
 800325a:	e7cd      	b.n	80031f8 <aiw_stream_push_message+0xb8>
 800325c:	000b      	movs	r3, r1
 800325e:	3b13      	subs	r3, #19
 8003260:	e7f6      	b.n	8003250 <aiw_stream_push_message+0x110>
 8003262:	5ca6      	ldrb	r6, [r4, r2]
 8003264:	7026      	strb	r6, [r4, #0]
 8003266:	3401      	adds	r4, #1
 8003268:	e7ea      	b.n	8003240 <aiw_stream_push_message+0x100>
 800326a:	32bc      	adds	r2, #188	@ 0xbc
 800326c:	e7c6      	b.n	80031fc <aiw_stream_push_message+0xbc>
 800326e:	2000      	movs	r0, #0
 8003270:	e7eb      	b.n	800324a <aiw_stream_push_message+0x10a>
 8003272:	46c0      	nop			@ (mov r8, r8)
 8003274:	08005e16 	.word	0x08005e16

08003278 <aiw_stream_push>:
 8003278:	b570      	push	{r4, r5, r6, lr}
 800327a:	001d      	movs	r5, r3
 800327c:	b0ac      	sub	sp, #176	@ 0xb0
 800327e:	2b00      	cmp	r3, #0
 8003280:	d103      	bne.n	800328a <aiw_stream_push+0x12>
 8003282:	2400      	movs	r4, #0
 8003284:	0020      	movs	r0, r4
 8003286:	b02c      	add	sp, #176	@ 0xb0
 8003288:	bd70      	pop	{r4, r5, r6, pc}
 800328a:	466b      	mov	r3, sp
 800328c:	f7ff ff58 	bl	8003140 <aiw_stream_push_message>
 8003290:	466e      	mov	r6, sp
 8003292:	1e04      	subs	r4, r0, #0
 8003294:	d0f6      	beq.n	8003284 <aiw_stream_push+0xc>
 8003296:	7833      	ldrb	r3, [r6, #0]
 8003298:	2b00      	cmp	r3, #0
 800329a:	d1f2      	bne.n	8003282 <aiw_stream_push+0xa>
 800329c:	22a8      	movs	r2, #168	@ 0xa8
 800329e:	0028      	movs	r0, r5
 80032a0:	a902      	add	r1, sp, #8
 80032a2:	f7fc ff85 	bl	80001b0 <memcpy>
 80032a6:	e7ed      	b.n	8003284 <aiw_stream_push+0xc>

080032a8 <clear_output>:
 80032a8:	2100      	movs	r1, #0
 80032aa:	b510      	push	{r4, lr}
 80032ac:	4b04      	ldr	r3, [pc, #16]	@ (80032c0 <clear_output+0x18>)
 80032ae:	227a      	movs	r2, #122	@ 0x7a
 80032b0:	54c1      	strb	r1, [r0, r3]
 80032b2:	3302      	adds	r3, #2
 80032b4:	54c1      	strb	r1, [r0, r3]
 80032b6:	333c      	adds	r3, #60	@ 0x3c
 80032b8:	18c0      	adds	r0, r0, r3
 80032ba:	f7fc ff82 	bl	80001c2 <memset>
 80032be:	bd10      	pop	{r4, pc}
 80032c0:	00000212 	.word	0x00000212

080032c4 <apply>:
 80032c4:	2394      	movs	r3, #148	@ 0x94
 80032c6:	009b      	lsls	r3, r3, #2
 80032c8:	b570      	push	{r4, r5, r6, lr}
 80032ca:	18c5      	adds	r5, r0, r3
 80032cc:	0004      	movs	r4, r0
 80032ce:	8802      	ldrh	r2, [r0, #0]
 80032d0:	0028      	movs	r0, r5
 80032d2:	f7fc ff6d 	bl	80001b0 <memcpy>
 80032d6:	227a      	movs	r2, #122	@ 0x7a
 80032d8:	8820      	ldrh	r0, [r4, #0]
 80032da:	2100      	movs	r1, #0
 80032dc:	1a12      	subs	r2, r2, r0
 80032de:	1828      	adds	r0, r5, r0
 80032e0:	f7fc ff6f 	bl	80001c2 <memset>
 80032e4:	2300      	movs	r3, #0
 80032e6:	2601      	movs	r6, #1
 80032e8:	4a06      	ldr	r2, [pc, #24]	@ (8003304 <apply+0x40>)
 80032ea:	54a3      	strb	r3, [r4, r2]
 80032ec:	8820      	ldrh	r0, [r4, #0]
 80032ee:	b299      	uxth	r1, r3
 80032f0:	4288      	cmp	r0, r1
 80032f2:	d800      	bhi.n	80032f6 <apply+0x32>
 80032f4:	bd70      	pop	{r4, r5, r6, pc}
 80032f6:	5ce9      	ldrb	r1, [r5, r3]
 80032f8:	2900      	cmp	r1, #0
 80032fa:	d000      	beq.n	80032fe <apply+0x3a>
 80032fc:	54a6      	strb	r6, [r4, r2]
 80032fe:	3301      	adds	r3, #1
 8003300:	e7f5      	b.n	80032ee <apply+0x2a>
 8003302:	46c0      	nop			@ (mov r8, r8)
 8003304:	00000212 	.word	0x00000212

08003308 <service>:
 8003308:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 800330a:	0004      	movs	r4, r0
 800330c:	000d      	movs	r5, r1
 800330e:	2800      	cmp	r0, #0
 8003310:	d018      	beq.n	8003344 <service+0x3c>
 8003312:	2384      	movs	r3, #132	@ 0x84
 8003314:	009b      	lsls	r3, r3, #2
 8003316:	5cc0      	ldrb	r0, [r0, r3]
 8003318:	2800      	cmp	r0, #0
 800331a:	d014      	beq.n	8003346 <service+0x3e>
 800331c:	333c      	adds	r3, #60	@ 0x3c
 800331e:	58e3      	ldr	r3, [r4, r3]
 8003320:	68e2      	ldr	r2, [r4, #12]
 8003322:	4e39      	ldr	r6, [pc, #228]	@ (8003408 <service+0x100>)
 8003324:	4f39      	ldr	r7, [pc, #228]	@ (800340c <service+0x104>)
 8003326:	1acb      	subs	r3, r1, r3
 8003328:	429a      	cmp	r2, r3
 800332a:	d20d      	bcs.n	8003348 <service+0x40>
 800332c:	0020      	movs	r0, r4
 800332e:	f7ff ffbb 	bl	80032a8 <clear_output>
 8003332:	2300      	movs	r3, #0
 8003334:	4a36      	ldr	r2, [pc, #216]	@ (8003410 <service+0x108>)
 8003336:	55a3      	strb	r3, [r4, r6]
 8003338:	55e3      	strb	r3, [r4, r7]
 800333a:	52a3      	strh	r3, [r4, r2]
 800333c:	2381      	movs	r3, #129	@ 0x81
 800333e:	2203      	movs	r2, #3
 8003340:	009b      	lsls	r3, r3, #2
 8003342:	54e2      	strb	r2, [r4, r3]
 8003344:	2000      	movs	r0, #0
 8003346:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8003348:	5da3      	ldrb	r3, [r4, r6]
 800334a:	2b00      	cmp	r3, #0
 800334c:	d02d      	beq.n	80033aa <service+0xa2>
 800334e:	2391      	movs	r3, #145	@ 0x91
 8003350:	2292      	movs	r2, #146	@ 0x92
 8003352:	009b      	lsls	r3, r3, #2
 8003354:	0092      	lsls	r2, r2, #2
 8003356:	58e3      	ldr	r3, [r4, r3]
 8003358:	58a2      	ldr	r2, [r4, r2]
 800335a:	1acb      	subs	r3, r1, r3
 800335c:	4293      	cmp	r3, r2
 800335e:	d324      	bcc.n	80033aa <service+0xa2>
 8003360:	0020      	movs	r0, r4
 8003362:	f7ff ffa1 	bl	80032a8 <clear_output>
 8003366:	2300      	movs	r3, #0
 8003368:	4a29      	ldr	r2, [pc, #164]	@ (8003410 <service+0x108>)
 800336a:	55a3      	strb	r3, [r4, r6]
 800336c:	55e3      	strb	r3, [r4, r7]
 800336e:	52a3      	strh	r3, [r4, r2]
 8003370:	3a06      	subs	r2, #6
 8003372:	54a3      	strb	r3, [r4, r2]
 8003374:	2385      	movs	r3, #133	@ 0x85
 8003376:	009b      	lsls	r3, r3, #2
 8003378:	5ce3      	ldrb	r3, [r4, r3]
 800337a:	2b00      	cmp	r3, #0
 800337c:	d00e      	beq.n	800339c <service+0x94>
 800337e:	2381      	movs	r3, #129	@ 0x81
 8003380:	009b      	lsls	r3, r3, #2
 8003382:	5ce3      	ldrb	r3, [r4, r3]
 8003384:	2b01      	cmp	r3, #1
 8003386:	d109      	bne.n	800339c <service+0x94>
 8003388:	2390      	movs	r3, #144	@ 0x90
 800338a:	009b      	lsls	r3, r3, #2
 800338c:	58e3      	ldr	r3, [r4, r3]
 800338e:	1aed      	subs	r5, r5, r3
 8003390:	68a3      	ldr	r3, [r4, #8]
 8003392:	429d      	cmp	r5, r3
 8003394:	d302      	bcc.n	800339c <service+0x94>
 8003396:	0020      	movs	r0, r4
 8003398:	f7ff ff86 	bl	80032a8 <clear_output>
 800339c:	5da3      	ldrb	r3, [r4, r6]
 800339e:	2b00      	cmp	r3, #0
 80033a0:	d121      	bne.n	80033e6 <service+0xde>
 80033a2:	2000      	movs	r0, #0
 80033a4:	2301      	movs	r3, #1
 80033a6:	4018      	ands	r0, r3
 80033a8:	e7cd      	b.n	8003346 <service+0x3e>
 80033aa:	5de3      	ldrb	r3, [r4, r7]
 80033ac:	2b00      	cmp	r3, #0
 80033ae:	d008      	beq.n	80033c2 <service+0xba>
 80033b0:	238f      	movs	r3, #143	@ 0x8f
 80033b2:	009b      	lsls	r3, r3, #2
 80033b4:	58e3      	ldr	r3, [r4, r3]
 80033b6:	68a2      	ldr	r2, [r4, #8]
 80033b8:	1aeb      	subs	r3, r5, r3
 80033ba:	4293      	cmp	r3, r2
 80033bc:	d301      	bcc.n	80033c2 <service+0xba>
 80033be:	2300      	movs	r3, #0
 80033c0:	55e3      	strb	r3, [r4, r7]
 80033c2:	4b14      	ldr	r3, [pc, #80]	@ (8003414 <service+0x10c>)
 80033c4:	5ce3      	ldrb	r3, [r4, r3]
 80033c6:	2b00      	cmp	r3, #0
 80033c8:	d0d4      	beq.n	8003374 <service+0x6c>
 80033ca:	2383      	movs	r3, #131	@ 0x83
 80033cc:	009b      	lsls	r3, r3, #2
 80033ce:	58e3      	ldr	r3, [r4, r3]
 80033d0:	68a2      	ldr	r2, [r4, #8]
 80033d2:	1aeb      	subs	r3, r5, r3
 80033d4:	4293      	cmp	r3, r2
 80033d6:	d3cd      	bcc.n	8003374 <service+0x6c>
 80033d8:	2200      	movs	r2, #0
 80033da:	4b0d      	ldr	r3, [pc, #52]	@ (8003410 <service+0x108>)
 80033dc:	0020      	movs	r0, r4
 80033de:	52e2      	strh	r2, [r4, r3]
 80033e0:	f7ff ff62 	bl	80032a8 <clear_output>
 80033e4:	e7c6      	b.n	8003374 <service+0x6c>
 80033e6:	4b0c      	ldr	r3, [pc, #48]	@ (8003418 <service+0x110>)
 80033e8:	5ce3      	ldrb	r3, [r4, r3]
 80033ea:	2b00      	cmp	r3, #0
 80033ec:	d0d9      	beq.n	80033a2 <service+0x9a>
 80033ee:	4b0b      	ldr	r3, [pc, #44]	@ (800341c <service+0x114>)
 80033f0:	5ce3      	ldrb	r3, [r4, r3]
 80033f2:	2b00      	cmp	r3, #0
 80033f4:	d0d5      	beq.n	80033a2 <service+0x9a>
 80033f6:	4b0a      	ldr	r3, [pc, #40]	@ (8003420 <service+0x118>)
 80033f8:	5ce3      	ldrb	r3, [r4, r3]
 80033fa:	2b00      	cmp	r3, #0
 80033fc:	d0d1      	beq.n	80033a2 <service+0x9a>
 80033fe:	2382      	movs	r3, #130	@ 0x82
 8003400:	009b      	lsls	r3, r3, #2
 8003402:	5ce0      	ldrb	r0, [r4, r3]
 8003404:	e7ce      	b.n	80033a4 <service+0x9c>
 8003406:	46c0      	nop			@ (mov r8, r8)
 8003408:	00000211 	.word	0x00000211
 800340c:	00000213 	.word	0x00000213
 8003410:	0000020a 	.word	0x0000020a
 8003414:	0000020b 	.word	0x0000020b
 8003418:	00000205 	.word	0x00000205
 800341c:	00000206 	.word	0x00000206
 8003420:	00000207 	.word	0x00000207

08003424 <lg_init>:
 8003424:	b5f0      	push	{r4, r5, r6, r7, lr}
 8003426:	2600      	movs	r6, #0
 8003428:	4c42      	ldr	r4, [pc, #264]	@ (8003534 <lg_init+0x110>)
 800342a:	0005      	movs	r5, r0
 800342c:	44a5      	add	sp, r4
 800342e:	9206      	str	r2, [sp, #24]
 8003430:	000c      	movs	r4, r1
 8003432:	9307      	str	r3, [sp, #28]
 8003434:	42b0      	cmp	r0, r6
 8003436:	d104      	bne.n	8003442 <lg_init+0x1e>
 8003438:	2000      	movs	r0, #0
 800343a:	238b      	movs	r3, #139	@ 0x8b
 800343c:	009b      	lsls	r3, r3, #2
 800343e:	449d      	add	sp, r3
 8003440:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8003442:	2900      	cmp	r1, #0
 8003444:	d016      	beq.n	8003474 <lg_init+0x50>
 8003446:	2281      	movs	r2, #129	@ 0x81
 8003448:	a809      	add	r0, sp, #36	@ 0x24
 800344a:	0092      	lsls	r2, r2, #2
 800344c:	f7fc feb0 	bl	80001b0 <memcpy>
 8003450:	6863      	ldr	r3, [r4, #4]
 8003452:	8826      	ldrh	r6, [r4, #0]
 8003454:	9302      	str	r3, [sp, #8]
 8003456:	68e3      	ldr	r3, [r4, #12]
 8003458:	68a7      	ldr	r7, [r4, #8]
 800345a:	9301      	str	r3, [sp, #4]
 800345c:	23fc      	movs	r3, #252	@ 0xfc
 800345e:	005b      	lsls	r3, r3, #1
 8003460:	58e3      	ldr	r3, [r4, r3]
 8003462:	9303      	str	r3, [sp, #12]
 8003464:	23fe      	movs	r3, #254	@ 0xfe
 8003466:	005b      	lsls	r3, r3, #1
 8003468:	58e3      	ldr	r3, [r4, r3]
 800346a:	9304      	str	r3, [sp, #16]
 800346c:	2380      	movs	r3, #128	@ 0x80
 800346e:	009b      	lsls	r3, r3, #2
 8003470:	58e3      	ldr	r3, [r4, r3]
 8003472:	9305      	str	r3, [sp, #20]
 8003474:	22b4      	movs	r2, #180	@ 0xb4
 8003476:	2100      	movs	r1, #0
 8003478:	0092      	lsls	r2, r2, #2
 800347a:	0028      	movs	r0, r5
 800347c:	f7fc fea1 	bl	80001c2 <memset>
 8003480:	2381      	movs	r3, #129	@ 0x81
 8003482:	2203      	movs	r2, #3
 8003484:	009b      	lsls	r3, r3, #2
 8003486:	54ea      	strb	r2, [r5, r3]
 8003488:	2c00      	cmp	r4, #0
 800348a:	d0d5      	beq.n	8003438 <lg_init+0x14>
 800348c:	9b06      	ldr	r3, [sp, #24]
 800348e:	9a07      	ldr	r2, [sp, #28]
 8003490:	4313      	orrs	r3, r2
 8003492:	d0d1      	beq.n	8003438 <lg_init+0x14>
 8003494:	2e00      	cmp	r6, #0
 8003496:	d0cf      	beq.n	8003438 <lg_init+0x14>
 8003498:	2e7a      	cmp	r6, #122	@ 0x7a
 800349a:	d8cd      	bhi.n	8003438 <lg_init+0x14>
 800349c:	9b05      	ldr	r3, [sp, #20]
 800349e:	2b00      	cmp	r3, #0
 80034a0:	d0ca      	beq.n	8003438 <lg_init+0x14>
 80034a2:	9b02      	ldr	r3, [sp, #8]
 80034a4:	2b00      	cmp	r3, #0
 80034a6:	d0c7      	beq.n	8003438 <lg_init+0x14>
 80034a8:	4b23      	ldr	r3, [pc, #140]	@ (8003538 <lg_init+0x114>)
 80034aa:	9a02      	ldr	r2, [sp, #8]
 80034ac:	429a      	cmp	r2, r3
 80034ae:	d8c3      	bhi.n	8003438 <lg_init+0x14>
 80034b0:	2f00      	cmp	r7, #0
 80034b2:	d0c1      	beq.n	8003438 <lg_init+0x14>
 80034b4:	429f      	cmp	r7, r3
 80034b6:	d8bf      	bhi.n	8003438 <lg_init+0x14>
 80034b8:	9a01      	ldr	r2, [sp, #4]
 80034ba:	2a00      	cmp	r2, #0
 80034bc:	d0bc      	beq.n	8003438 <lg_init+0x14>
 80034be:	429a      	cmp	r2, r3
 80034c0:	d8ba      	bhi.n	8003438 <lg_init+0x14>
 80034c2:	42ba      	cmp	r2, r7
 80034c4:	d8b8      	bhi.n	8003438 <lg_init+0x14>
 80034c6:	9b03      	ldr	r3, [sp, #12]
 80034c8:	9a04      	ldr	r2, [sp, #16]
 80034ca:	4293      	cmp	r3, r2
 80034cc:	d2b4      	bcs.n	8003438 <lg_init+0x14>
 80034ce:	2300      	movs	r3, #0
 80034d0:	aa09      	add	r2, sp, #36	@ 0x24
 80034d2:	6911      	ldr	r1, [r2, #16]
 80034d4:	2900      	cmp	r1, #0
 80034d6:	d0af      	beq.n	8003438 <lg_init+0x14>
 80034d8:	3301      	adds	r3, #1
 80034da:	b29b      	uxth	r3, r3
 80034dc:	3204      	adds	r2, #4
 80034de:	42b3      	cmp	r3, r6
 80034e0:	d3f7      	bcc.n	80034d2 <lg_init+0xae>
 80034e2:	9b02      	ldr	r3, [sp, #8]
 80034e4:	9a03      	ldr	r2, [sp, #12]
 80034e6:	930a      	str	r3, [sp, #40]	@ 0x28
 80034e8:	9b01      	ldr	r3, [sp, #4]
 80034ea:	a909      	add	r1, sp, #36	@ 0x24
 80034ec:	60cb      	str	r3, [r1, #12]
 80034ee:	23fc      	movs	r3, #252	@ 0xfc
 80034f0:	005b      	lsls	r3, r3, #1
 80034f2:	50ca      	str	r2, [r1, r3]
 80034f4:	9a04      	ldr	r2, [sp, #16]
 80034f6:	3304      	adds	r3, #4
 80034f8:	50ca      	str	r2, [r1, r3]
 80034fa:	9a05      	ldr	r2, [sp, #20]
 80034fc:	3304      	adds	r3, #4
 80034fe:	50ca      	str	r2, [r1, r3]
 8003500:	2281      	movs	r2, #129	@ 0x81
 8003502:	0028      	movs	r0, r5
 8003504:	0092      	lsls	r2, r2, #2
 8003506:	800e      	strh	r6, [r1, #0]
 8003508:	608f      	str	r7, [r1, #8]
 800350a:	f7fc fe51 	bl	80001b0 <memcpy>
 800350e:	2384      	movs	r3, #132	@ 0x84
 8003510:	2001      	movs	r0, #1
 8003512:	009b      	lsls	r3, r3, #2
 8003514:	54e8      	strb	r0, [r5, r3]
 8003516:	9a06      	ldr	r2, [sp, #24]
 8003518:	3308      	adds	r3, #8
 800351a:	18eb      	adds	r3, r5, r3
 800351c:	601a      	str	r2, [r3, #0]
 800351e:	9a07      	ldr	r2, [sp, #28]
 8003520:	605a      	str	r2, [r3, #4]
 8003522:	2393      	movs	r3, #147	@ 0x93
 8003524:	9a90      	ldr	r2, [sp, #576]	@ 0x240
 8003526:	009b      	lsls	r3, r3, #2
 8003528:	50ea      	str	r2, [r5, r3]
 800352a:	2281      	movs	r2, #129	@ 0x81
 800352c:	2300      	movs	r3, #0
 800352e:	0092      	lsls	r2, r2, #2
 8003530:	54ab      	strb	r3, [r5, r2]
 8003532:	e782      	b.n	800343a <lg_init+0x16>
 8003534:	fffffdd4 	.word	0xfffffdd4
 8003538:	7ffffffe 	.word	0x7ffffffe

0800353c <lg_stop>:
 800353c:	b570      	push	{r4, r5, r6, lr}
 800353e:	1e04      	subs	r4, r0, #0
 8003540:	d011      	beq.n	8003566 <lg_stop+0x2a>
 8003542:	2681      	movs	r6, #129	@ 0x81
 8003544:	00b6      	lsls	r6, r6, #2
 8003546:	5d85      	ldrb	r5, [r0, r6]
 8003548:	1eeb      	subs	r3, r5, #3
 800354a:	425a      	negs	r2, r3
 800354c:	4153      	adcs	r3, r2
 800354e:	425b      	negs	r3, r3
 8003550:	401d      	ands	r5, r3
 8003552:	f7ff fea9 	bl	80032a8 <clear_output>
 8003556:	2300      	movs	r3, #0
 8003558:	4a03      	ldr	r2, [pc, #12]	@ (8003568 <lg_stop+0x2c>)
 800355a:	54a3      	strb	r3, [r4, r2]
 800355c:	4a03      	ldr	r2, [pc, #12]	@ (800356c <lg_stop+0x30>)
 800355e:	54a3      	strb	r3, [r4, r2]
 8003560:	4a03      	ldr	r2, [pc, #12]	@ (8003570 <lg_stop+0x34>)
 8003562:	52a3      	strh	r3, [r4, r2]
 8003564:	55a5      	strb	r5, [r4, r6]
 8003566:	bd70      	pop	{r4, r5, r6, pc}
 8003568:	00000211 	.word	0x00000211
 800356c:	00000213 	.word	0x00000213
 8003570:	0000020a 	.word	0x0000020a

08003574 <lg_poll>:
 8003574:	b573      	push	{r0, r1, r4, r5, r6, lr}
 8003576:	0004      	movs	r4, r0
 8003578:	000e      	movs	r6, r1
 800357a:	466d      	mov	r5, sp
 800357c:	9200      	str	r2, [sp, #0]
 800357e:	9301      	str	r3, [sp, #4]
 8003580:	2800      	cmp	r0, #0
 8003582:	d033      	beq.n	80035ec <lg_poll+0x78>
 8003584:	2384      	movs	r3, #132	@ 0x84
 8003586:	009b      	lsls	r3, r3, #2
 8003588:	5cc3      	ldrb	r3, [r0, r3]
 800358a:	2b00      	cmp	r3, #0
 800358c:	d02e      	beq.n	80035ec <lg_poll+0x78>
 800358e:	f7ff febb 	bl	8003308 <service>
 8003592:	2393      	movs	r3, #147	@ 0x93
 8003594:	009b      	lsls	r3, r3, #2
 8003596:	50e6      	str	r6, [r4, r3]
 8003598:	4b15      	ldr	r3, [pc, #84]	@ (80035f0 <lg_poll+0x7c>)
 800359a:	2205      	movs	r2, #5
 800359c:	4669      	mov	r1, sp
 800359e:	18e0      	adds	r0, r4, r3
 80035a0:	f7fc fe06 	bl	80001b0 <memcpy>
 80035a4:	792e      	ldrb	r6, [r5, #4]
 80035a6:	2e00      	cmp	r6, #0
 80035a8:	d106      	bne.n	80035b8 <lg_poll+0x44>
 80035aa:	0020      	movs	r0, r4
 80035ac:	f7ff fe7c 	bl	80032a8 <clear_output>
 80035b0:	4b10      	ldr	r3, [pc, #64]	@ (80035f4 <lg_poll+0x80>)
 80035b2:	54e6      	strb	r6, [r4, r3]
 80035b4:	4b10      	ldr	r3, [pc, #64]	@ (80035f8 <lg_poll+0x84>)
 80035b6:	52e6      	strh	r6, [r4, r3]
 80035b8:	782b      	ldrb	r3, [r5, #0]
 80035ba:	2b00      	cmp	r3, #0
 80035bc:	d008      	beq.n	80035d0 <lg_poll+0x5c>
 80035be:	786b      	ldrb	r3, [r5, #1]
 80035c0:	2b00      	cmp	r3, #0
 80035c2:	d005      	beq.n	80035d0 <lg_poll+0x5c>
 80035c4:	78ab      	ldrb	r3, [r5, #2]
 80035c6:	2b00      	cmp	r3, #0
 80035c8:	d002      	beq.n	80035d0 <lg_poll+0x5c>
 80035ca:	78eb      	ldrb	r3, [r5, #3]
 80035cc:	2b00      	cmp	r3, #0
 80035ce:	d10d      	bne.n	80035ec <lg_poll+0x78>
 80035d0:	0020      	movs	r0, r4
 80035d2:	f7ff fe69 	bl	80032a8 <clear_output>
 80035d6:	2300      	movs	r3, #0
 80035d8:	4a08      	ldr	r2, [pc, #32]	@ (80035fc <lg_poll+0x88>)
 80035da:	54a3      	strb	r3, [r4, r2]
 80035dc:	4a05      	ldr	r2, [pc, #20]	@ (80035f4 <lg_poll+0x80>)
 80035de:	54a3      	strb	r3, [r4, r2]
 80035e0:	4a05      	ldr	r2, [pc, #20]	@ (80035f8 <lg_poll+0x84>)
 80035e2:	52a3      	strh	r3, [r4, r2]
 80035e4:	2381      	movs	r3, #129	@ 0x81
 80035e6:	2203      	movs	r2, #3
 80035e8:	009b      	lsls	r3, r3, #2
 80035ea:	54e2      	strb	r2, [r4, r3]
 80035ec:	bd73      	pop	{r0, r1, r4, r5, r6, pc}
 80035ee:	46c0      	nop			@ (mov r8, r8)
 80035f0:	00000205 	.word	0x00000205
 80035f4:	00000213 	.word	0x00000213
 80035f8:	0000020a 	.word	0x0000020a
 80035fc:	00000211 	.word	0x00000211

08003600 <lg_arm>:
 8003600:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8003602:	0004      	movs	r4, r0
 8003604:	000f      	movs	r7, r1
 8003606:	0016      	movs	r6, r2
 8003608:	9301      	str	r3, [sp, #4]
 800360a:	2800      	cmp	r0, #0
 800360c:	d102      	bne.n	8003614 <lg_arm+0x14>
 800360e:	2500      	movs	r5, #0
 8003610:	0028      	movs	r0, r5
 8003612:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8003614:	2384      	movs	r3, #132	@ 0x84
 8003616:	009b      	lsls	r3, r3, #2
 8003618:	5cc5      	ldrb	r5, [r0, r3]
 800361a:	2d00      	cmp	r5, #0
 800361c:	d0f8      	beq.n	8003610 <lg_arm+0x10>
 800361e:	9901      	ldr	r1, [sp, #4]
 8003620:	f7ff fe72 	bl	8003308 <service>
 8003624:	2f01      	cmp	r7, #1
 8003626:	d03c      	beq.n	80036a2 <lg_arm+0xa2>
 8003628:	1ebb      	subs	r3, r7, #2
 800362a:	1e5a      	subs	r2, r3, #1
 800362c:	4193      	sbcs	r3, r2
 800362e:	4a1e      	ldr	r2, [pc, #120]	@ (80036a8 <lg_arm+0xa8>)
 8003630:	425b      	negs	r3, r3
 8003632:	4013      	ands	r3, r2
 8003634:	4a1d      	ldr	r2, [pc, #116]	@ (80036ac <lg_arm+0xac>)
 8003636:	189b      	adds	r3, r3, r2
 8003638:	2281      	movs	r2, #129	@ 0x81
 800363a:	0092      	lsls	r2, r2, #2
 800363c:	5ca2      	ldrb	r2, [r4, r2]
 800363e:	2a03      	cmp	r2, #3
 8003640:	d0e5      	beq.n	800360e <lg_arm+0xe>
 8003642:	4a1b      	ldr	r2, [pc, #108]	@ (80036b0 <lg_arm+0xb0>)
 8003644:	5ca2      	ldrb	r2, [r4, r2]
 8003646:	2a00      	cmp	r2, #0
 8003648:	d1e1      	bne.n	800360e <lg_arm+0xe>
 800364a:	4a1a      	ldr	r2, [pc, #104]	@ (80036b4 <lg_arm+0xb4>)
 800364c:	5ca5      	ldrb	r5, [r4, r2]
 800364e:	2d00      	cmp	r5, #0
 8003650:	d0de      	beq.n	8003610 <lg_arm+0x10>
 8003652:	4a19      	ldr	r2, [pc, #100]	@ (80036b8 <lg_arm+0xb8>)
 8003654:	5ca5      	ldrb	r5, [r4, r2]
 8003656:	2d00      	cmp	r5, #0
 8003658:	d0da      	beq.n	8003610 <lg_arm+0x10>
 800365a:	4a18      	ldr	r2, [pc, #96]	@ (80036bc <lg_arm+0xbc>)
 800365c:	5ca5      	ldrb	r5, [r4, r2]
 800365e:	2d00      	cmp	r5, #0
 8003660:	d0d6      	beq.n	8003610 <lg_arm+0x10>
 8003662:	3201      	adds	r2, #1
 8003664:	5ca5      	ldrb	r5, [r4, r2]
 8003666:	2d00      	cmp	r5, #0
 8003668:	d0d2      	beq.n	8003610 <lg_arm+0x10>
 800366a:	1e7a      	subs	r2, r7, #1
 800366c:	2a01      	cmp	r2, #1
 800366e:	d8ce      	bhi.n	800360e <lg_arm+0xe>
 8003670:	2e00      	cmp	r6, #0
 8003672:	d0cc      	beq.n	800360e <lg_arm+0xe>
 8003674:	6862      	ldr	r2, [r4, #4]
 8003676:	42b2      	cmp	r2, r6
 8003678:	d3c9      	bcc.n	800360e <lg_arm+0xe>
 800367a:	42b3      	cmp	r3, r6
 800367c:	d3c7      	bcc.n	800360e <lg_arm+0xe>
 800367e:	0020      	movs	r0, r4
 8003680:	f7ff fe12 	bl	80032a8 <clear_output>
 8003684:	2200      	movs	r2, #0
 8003686:	4b0e      	ldr	r3, [pc, #56]	@ (80036c0 <lg_arm+0xc0>)
 8003688:	54e2      	strb	r2, [r4, r3]
 800368a:	3b0f      	subs	r3, #15
 800368c:	54e7      	strb	r7, [r4, r3]
 800368e:	2301      	movs	r3, #1
 8003690:	4a07      	ldr	r2, [pc, #28]	@ (80036b0 <lg_arm+0xb0>)
 8003692:	54a3      	strb	r3, [r4, r2]
 8003694:	2391      	movs	r3, #145	@ 0x91
 8003696:	9a01      	ldr	r2, [sp, #4]
 8003698:	009b      	lsls	r3, r3, #2
 800369a:	50e2      	str	r2, [r4, r3]
 800369c:	3304      	adds	r3, #4
 800369e:	50e6      	str	r6, [r4, r3]
 80036a0:	e7b6      	b.n	8003610 <lg_arm+0x10>
 80036a2:	4b08      	ldr	r3, [pc, #32]	@ (80036c4 <lg_arm+0xc4>)
 80036a4:	e7c8      	b.n	8003638 <lg_arm+0x38>
 80036a6:	46c0      	nop			@ (mov r8, r8)
 80036a8:	fffe2b40 	.word	0xfffe2b40
 80036ac:	0001d4c0 	.word	0x0001d4c0
 80036b0:	00000211 	.word	0x00000211
 80036b4:	00000205 	.word	0x00000205
 80036b8:	00000206 	.word	0x00000206
 80036bc:	00000207 	.word	0x00000207
 80036c0:	00000213 	.word	0x00000213
 80036c4:	00015f90 	.word	0x00015f90

080036c8 <lg_remaining_ms>:
 80036c8:	1e03      	subs	r3, r0, #0
 80036ca:	d101      	bne.n	80036d0 <lg_remaining_ms+0x8>
 80036cc:	2000      	movs	r0, #0
 80036ce:	4770      	bx	lr
 80036d0:	2284      	movs	r2, #132	@ 0x84
 80036d2:	0092      	lsls	r2, r2, #2
 80036d4:	5c82      	ldrb	r2, [r0, r2]
 80036d6:	2a00      	cmp	r2, #0
 80036d8:	d0f8      	beq.n	80036cc <lg_remaining_ms+0x4>
 80036da:	4a08      	ldr	r2, [pc, #32]	@ (80036fc <lg_remaining_ms+0x34>)
 80036dc:	5c82      	ldrb	r2, [r0, r2]
 80036de:	2a00      	cmp	r2, #0
 80036e0:	d0f4      	beq.n	80036cc <lg_remaining_ms+0x4>
 80036e2:	2292      	movs	r2, #146	@ 0x92
 80036e4:	0092      	lsls	r2, r2, #2
 80036e6:	5880      	ldr	r0, [r0, r2]
 80036e8:	2800      	cmp	r0, #0
 80036ea:	d0f0      	beq.n	80036ce <lg_remaining_ms+0x6>
 80036ec:	3a04      	subs	r2, #4
 80036ee:	589b      	ldr	r3, [r3, r2]
 80036f0:	1aca      	subs	r2, r1, r3
 80036f2:	4290      	cmp	r0, r2
 80036f4:	d9ea      	bls.n	80036cc <lg_remaining_ms+0x4>
 80036f6:	18c0      	adds	r0, r0, r3
 80036f8:	1a40      	subs	r0, r0, r1
 80036fa:	e7e8      	b.n	80036ce <lg_remaining_ms+0x6>
 80036fc:	00000211 	.word	0x00000211

08003700 <lg_issue_ticket>:
 8003700:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8003702:	0004      	movs	r4, r0
 8003704:	0015      	movs	r5, r2
 8003706:	9101      	str	r1, [sp, #4]
 8003708:	2800      	cmp	r0, #0
 800370a:	d001      	beq.n	8003710 <lg_issue_ticket+0x10>
 800370c:	2a00      	cmp	r2, #0
 800370e:	d102      	bne.n	8003716 <lg_issue_ticket+0x16>
 8003710:	2600      	movs	r6, #0
 8003712:	0030      	movs	r0, r6
 8003714:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8003716:	9901      	ldr	r1, [sp, #4]
 8003718:	f7ff fdf6 	bl	8003308 <service>
 800371c:	1e06      	subs	r6, r0, #0
 800371e:	d0f8      	beq.n	8003712 <lg_issue_ticket+0x12>
 8003720:	4b2f      	ldr	r3, [pc, #188]	@ (80037e0 <lg_issue_ticket+0xe0>)
 8003722:	5ce6      	ldrb	r6, [r4, r3]
 8003724:	2e00      	cmp	r6, #0
 8003726:	d0f4      	beq.n	8003712 <lg_issue_ticket+0x12>
 8003728:	3b05      	subs	r3, #5
 800372a:	5ce3      	ldrb	r3, [r4, r3]
 800372c:	3b01      	subs	r3, #1
 800372e:	b2db      	uxtb	r3, r3
 8003730:	2b01      	cmp	r3, #1
 8003732:	d8ed      	bhi.n	8003710 <lg_issue_ticket+0x10>
 8003734:	2388      	movs	r3, #136	@ 0x88
 8003736:	009b      	lsls	r3, r3, #2
 8003738:	58e3      	ldr	r3, [r4, r3]
 800373a:	4f2a      	ldr	r7, [pc, #168]	@ (80037e4 <lg_issue_ticket+0xe4>)
 800373c:	1c5a      	adds	r2, r3, #1
 800373e:	d00d      	beq.n	800375c <lg_issue_ticket+0x5c>
 8003740:	228e      	movs	r2, #142	@ 0x8e
 8003742:	0092      	lsls	r2, r2, #2
 8003744:	5ca2      	ldrb	r2, [r4, r2]
 8003746:	2a00      	cmp	r2, #0
 8003748:	d016      	beq.n	8003778 <lg_issue_ticket+0x78>
 800374a:	228c      	movs	r2, #140	@ 0x8c
 800374c:	0092      	lsls	r2, r2, #2
 800374e:	18a2      	adds	r2, r4, r2
 8003750:	6811      	ldr	r1, [r2, #0]
 8003752:	3101      	adds	r1, #1
 8003754:	d110      	bne.n	8003778 <lg_issue_ticket+0x78>
 8003756:	6852      	ldr	r2, [r2, #4]
 8003758:	3201      	adds	r2, #1
 800375a:	d10d      	bne.n	8003778 <lg_issue_ticket+0x78>
 800375c:	0020      	movs	r0, r4
 800375e:	f7ff fda3 	bl	80032a8 <clear_output>
 8003762:	2300      	movs	r3, #0
 8003764:	4a20      	ldr	r2, [pc, #128]	@ (80037e8 <lg_issue_ticket+0xe8>)
 8003766:	54a3      	strb	r3, [r4, r2]
 8003768:	4a20      	ldr	r2, [pc, #128]	@ (80037ec <lg_issue_ticket+0xec>)
 800376a:	55e3      	strb	r3, [r4, r7]
 800376c:	52a3      	strh	r3, [r4, r2]
 800376e:	2381      	movs	r3, #129	@ 0x81
 8003770:	2203      	movs	r2, #3
 8003772:	009b      	lsls	r3, r3, #2
 8003774:	54e2      	strb	r2, [r4, r3]
 8003776:	e7cb      	b.n	8003710 <lg_issue_ticket+0x10>
 8003778:	2288      	movs	r2, #136	@ 0x88
 800377a:	3301      	adds	r3, #1
 800377c:	0092      	lsls	r2, r2, #2
 800377e:	50a3      	str	r3, [r4, r2]
 8003780:	238f      	movs	r3, #143	@ 0x8f
 8003782:	9901      	ldr	r1, [sp, #4]
 8003784:	009b      	lsls	r3, r3, #2
 8003786:	50e1      	str	r1, [r4, r3]
 8003788:	2301      	movs	r3, #1
 800378a:	3a71      	subs	r2, #113	@ 0x71
 800378c:	2100      	movs	r1, #0
 800378e:	55e3      	strb	r3, [r4, r7]
 8003790:	3aff      	subs	r2, #255	@ 0xff
 8003792:	0028      	movs	r0, r5
 8003794:	f7fc fd15 	bl	80001c2 <memset>
 8003798:	2386      	movs	r3, #134	@ 0x86
 800379a:	009b      	lsls	r3, r3, #2
 800379c:	18e3      	adds	r3, r4, r3
 800379e:	cb0c      	ldmia	r3, {r2, r3}
 80037a0:	602a      	str	r2, [r5, #0]
 80037a2:	606b      	str	r3, [r5, #4]
 80037a4:	2288      	movs	r2, #136	@ 0x88
 80037a6:	0092      	lsls	r2, r2, #2
 80037a8:	58a3      	ldr	r3, [r4, r2]
 80037aa:	2001      	movs	r0, #1
 80037ac:	60ab      	str	r3, [r5, #8]
 80037ae:	238e      	movs	r3, #142	@ 0x8e
 80037b0:	009b      	lsls	r3, r3, #2
 80037b2:	5ce3      	ldrb	r3, [r4, r3]
 80037b4:	2100      	movs	r1, #0
 80037b6:	2b00      	cmp	r3, #0
 80037b8:	d005      	beq.n	80037c6 <lg_issue_ticket+0xc6>
 80037ba:	238c      	movs	r3, #140	@ 0x8c
 80037bc:	009b      	lsls	r3, r3, #2
 80037be:	18e3      	adds	r3, r4, r3
 80037c0:	cb0c      	ldmia	r3, {r2, r3}
 80037c2:	1880      	adds	r0, r0, r2
 80037c4:	4159      	adcs	r1, r3
 80037c6:	238a      	movs	r3, #138	@ 0x8a
 80037c8:	009b      	lsls	r3, r3, #2
 80037ca:	18e3      	adds	r3, r4, r3
 80037cc:	c303      	stmia	r3!, {r0, r1}
 80037ce:	2380      	movs	r3, #128	@ 0x80
 80037d0:	009b      	lsls	r3, r3, #2
 80037d2:	58e3      	ldr	r3, [r4, r3]
 80037d4:	6128      	str	r0, [r5, #16]
 80037d6:	6169      	str	r1, [r5, #20]
 80037d8:	62eb      	str	r3, [r5, #44]	@ 0x2c
 80037da:	8823      	ldrh	r3, [r4, #0]
 80037dc:	862b      	strh	r3, [r5, #48]	@ 0x30
 80037de:	e798      	b.n	8003712 <lg_issue_ticket+0x12>
 80037e0:	00000209 	.word	0x00000209
 80037e4:	00000213 	.word	0x00000213
 80037e8:	00000211 	.word	0x00000211
 80037ec:	0000020a 	.word	0x0000020a

080037f0 <lg_accept_ai>:
 80037f0:	b5f0      	push	{r4, r5, r6, r7, lr}
 80037f2:	0004      	movs	r4, r0
 80037f4:	000d      	movs	r5, r1
 80037f6:	b0a7      	sub	sp, #156	@ 0x9c
 80037f8:	2800      	cmp	r0, #0
 80037fa:	d100      	bne.n	80037fe <lg_accept_ai+0xe>
 80037fc:	e0a2      	b.n	8003944 <lg_accept_ai+0x154>
 80037fe:	2900      	cmp	r1, #0
 8003800:	d100      	bne.n	8003804 <lg_accept_ai+0x14>
 8003802:	e09f      	b.n	8003944 <lg_accept_ai+0x154>
 8003804:	0011      	movs	r1, r2
 8003806:	f7ff fd7f 	bl	8003308 <service>
 800380a:	1e07      	subs	r7, r0, #0
 800380c:	d100      	bne.n	8003810 <lg_accept_ai+0x20>
 800380e:	e09a      	b.n	8003946 <lg_accept_ai+0x156>
 8003810:	4b6d      	ldr	r3, [pc, #436]	@ (80039c8 <lg_accept_ai+0x1d8>)
 8003812:	5ce7      	ldrb	r7, [r4, r3]
 8003814:	2f00      	cmp	r7, #0
 8003816:	d100      	bne.n	800381a <lg_accept_ai+0x2a>
 8003818:	e095      	b.n	8003946 <lg_accept_ai+0x156>
 800381a:	3b05      	subs	r3, #5
 800381c:	5ce3      	ldrb	r3, [r4, r3]
 800381e:	3b01      	subs	r3, #1
 8003820:	b2db      	uxtb	r3, r3
 8003822:	2b01      	cmp	r3, #1
 8003824:	d900      	bls.n	8003828 <lg_accept_ai+0x38>
 8003826:	e08d      	b.n	8003944 <lg_accept_ai+0x154>
 8003828:	227a      	movs	r2, #122	@ 0x7a
 800382a:	2100      	movs	r1, #0
 800382c:	a807      	add	r0, sp, #28
 800382e:	f7fc fcc8 	bl	80001c2 <memset>
 8003832:	002b      	movs	r3, r5
 8003834:	3332      	adds	r3, #50	@ 0x32
 8003836:	0018      	movs	r0, r3
 8003838:	8822      	ldrh	r2, [r4, #0]
 800383a:	a907      	add	r1, sp, #28
 800383c:	9302      	str	r3, [sp, #8]
 800383e:	f7fc fcc8 	bl	80001d2 <memcmp>
 8003842:	4b62      	ldr	r3, [pc, #392]	@ (80039cc <lg_accept_ai+0x1dc>)
 8003844:	9005      	str	r0, [sp, #20]
 8003846:	5ce7      	ldrb	r7, [r4, r3]
 8003848:	2f00      	cmp	r7, #0
 800384a:	d073      	beq.n	8003934 <lg_accept_ai+0x144>
 800384c:	3305      	adds	r3, #5
 800384e:	18e3      	adds	r3, r4, r3
 8003850:	6829      	ldr	r1, [r5, #0]
 8003852:	681a      	ldr	r2, [r3, #0]
 8003854:	4291      	cmp	r1, r2
 8003856:	d16d      	bne.n	8003934 <lg_accept_ai+0x144>
 8003858:	686a      	ldr	r2, [r5, #4]
 800385a:	685b      	ldr	r3, [r3, #4]
 800385c:	429a      	cmp	r2, r3
 800385e:	d169      	bne.n	8003934 <lg_accept_ai+0x144>
 8003860:	2388      	movs	r3, #136	@ 0x88
 8003862:	009b      	lsls	r3, r3, #2
 8003864:	68aa      	ldr	r2, [r5, #8]
 8003866:	58e3      	ldr	r3, [r4, r3]
 8003868:	429a      	cmp	r2, r3
 800386a:	d163      	bne.n	8003934 <lg_accept_ai+0x144>
 800386c:	6a29      	ldr	r1, [r5, #32]
 800386e:	6a6b      	ldr	r3, [r5, #36]	@ 0x24
 8003870:	000a      	movs	r2, r1
 8003872:	431a      	orrs	r2, r3
 8003874:	d05e      	beq.n	8003934 <lg_accept_ai+0x144>
 8003876:	228a      	movs	r2, #138	@ 0x8a
 8003878:	0092      	lsls	r2, r2, #2
 800387a:	18a2      	adds	r2, r4, r2
 800387c:	6850      	ldr	r0, [r2, #4]
 800387e:	4298      	cmp	r0, r3
 8003880:	d858      	bhi.n	8003934 <lg_accept_ai+0x144>
 8003882:	d102      	bne.n	800388a <lg_accept_ai+0x9a>
 8003884:	6812      	ldr	r2, [r2, #0]
 8003886:	428a      	cmp	r2, r1
 8003888:	d854      	bhi.n	8003934 <lg_accept_ai+0x144>
 800388a:	69ea      	ldr	r2, [r5, #28]
 800388c:	69a8      	ldr	r0, [r5, #24]
 800388e:	4293      	cmp	r3, r2
 8003890:	d802      	bhi.n	8003898 <lg_accept_ai+0xa8>
 8003892:	d14f      	bne.n	8003934 <lg_accept_ai+0x144>
 8003894:	4281      	cmp	r1, r0
 8003896:	d94d      	bls.n	8003934 <lg_accept_ai+0x144>
 8003898:	238e      	movs	r3, #142	@ 0x8e
 800389a:	009b      	lsls	r3, r3, #2
 800389c:	5ce3      	ldrb	r3, [r4, r3]
 800389e:	2b00      	cmp	r3, #0
 80038a0:	d009      	beq.n	80038b6 <lg_accept_ai+0xc6>
 80038a2:	238c      	movs	r3, #140	@ 0x8c
 80038a4:	009b      	lsls	r3, r3, #2
 80038a6:	18e3      	adds	r3, r4, r3
 80038a8:	6859      	ldr	r1, [r3, #4]
 80038aa:	4291      	cmp	r1, r2
 80038ac:	d842      	bhi.n	8003934 <lg_accept_ai+0x144>
 80038ae:	d102      	bne.n	80038b6 <lg_accept_ai+0xc6>
 80038b0:	681b      	ldr	r3, [r3, #0]
 80038b2:	4283      	cmp	r3, r0
 80038b4:	d83e      	bhi.n	8003934 <lg_accept_ai+0x144>
 80038b6:	8e2a      	ldrh	r2, [r5, #48]	@ 0x30
 80038b8:	8823      	ldrh	r3, [r4, #0]
 80038ba:	9204      	str	r2, [sp, #16]
 80038bc:	429a      	cmp	r2, r3
 80038be:	d139      	bne.n	8003934 <lg_accept_ai+0x144>
 80038c0:	2380      	movs	r3, #128	@ 0x80
 80038c2:	009b      	lsls	r3, r3, #2
 80038c4:	6aea      	ldr	r2, [r5, #44]	@ 0x2c
 80038c6:	58e3      	ldr	r3, [r4, r3]
 80038c8:	429a      	cmp	r2, r3
 80038ca:	d133      	bne.n	8003934 <lg_accept_ai+0x144>
 80038cc:	23fc      	movs	r3, #252	@ 0xfc
 80038ce:	005b      	lsls	r3, r3, #1
 80038d0:	58e0      	ldr	r0, [r4, r3]
 80038d2:	22ff      	movs	r2, #255	@ 0xff
 80038d4:	2300      	movs	r3, #0
 80038d6:	2100      	movs	r1, #0
 80038d8:	f001 ffce 	bl	8005878 <__aeabi_lmul>
 80038dc:	0023      	movs	r3, r4
 80038de:	002e      	movs	r6, r5
 80038e0:	3310      	adds	r3, #16
 80038e2:	9303      	str	r3, [sp, #12]
 80038e4:	9b04      	ldr	r3, [sp, #16]
 80038e6:	3632      	adds	r6, #50	@ 0x32
 80038e8:	199b      	adds	r3, r3, r6
 80038ea:	9000      	str	r0, [sp, #0]
 80038ec:	9101      	str	r1, [sp, #4]
 80038ee:	9304      	str	r3, [sp, #16]
 80038f0:	9b04      	ldr	r3, [sp, #16]
 80038f2:	429e      	cmp	r6, r3
 80038f4:	d12a      	bne.n	800394c <lg_accept_ai+0x15c>
 80038f6:	23fe      	movs	r3, #254	@ 0xfe
 80038f8:	005b      	lsls	r3, r3, #1
 80038fa:	58e0      	ldr	r0, [r4, r3]
 80038fc:	22ff      	movs	r2, #255	@ 0xff
 80038fe:	2300      	movs	r3, #0
 8003900:	2100      	movs	r1, #0
 8003902:	f001 ffb9 	bl	8005878 <__aeabi_lmul>
 8003906:	9b01      	ldr	r3, [sp, #4]
 8003908:	428b      	cmp	r3, r1
 800390a:	d813      	bhi.n	8003934 <lg_accept_ai+0x144>
 800390c:	d102      	bne.n	8003914 <lg_accept_ai+0x124>
 800390e:	9b00      	ldr	r3, [sp, #0]
 8003910:	4283      	cmp	r3, r0
 8003912:	d80f      	bhi.n	8003934 <lg_accept_ai+0x144>
 8003914:	9b05      	ldr	r3, [sp, #20]
 8003916:	2b00      	cmp	r3, #0
 8003918:	d004      	beq.n	8003924 <lg_accept_ai+0x134>
 800391a:	2381      	movs	r3, #129	@ 0x81
 800391c:	009b      	lsls	r3, r3, #2
 800391e:	5ce3      	ldrb	r3, [r4, r3]
 8003920:	2b02      	cmp	r3, #2
 8003922:	d007      	beq.n	8003934 <lg_accept_ai+0x144>
 8003924:	002b      	movs	r3, r5
 8003926:	3328      	adds	r3, #40	@ 0x28
 8003928:	781b      	ldrb	r3, [r3, #0]
 800392a:	2b00      	cmp	r3, #0
 800392c:	d11f      	bne.n	800396e <lg_accept_ai+0x17e>
 800392e:	9a05      	ldr	r2, [sp, #20]
 8003930:	429a      	cmp	r2, r3
 8003932:	d01c      	beq.n	800396e <lg_accept_ai+0x17e>
 8003934:	0020      	movs	r0, r4
 8003936:	f7ff fcb7 	bl	80032a8 <clear_output>
 800393a:	2300      	movs	r3, #0
 800393c:	4a24      	ldr	r2, [pc, #144]	@ (80039d0 <lg_accept_ai+0x1e0>)
 800393e:	52a3      	strh	r3, [r4, r2]
 8003940:	4a22      	ldr	r2, [pc, #136]	@ (80039cc <lg_accept_ai+0x1dc>)
 8003942:	54a3      	strb	r3, [r4, r2]
 8003944:	2700      	movs	r7, #0
 8003946:	0038      	movs	r0, r7
 8003948:	b027      	add	sp, #156	@ 0x9c
 800394a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 800394c:	9b03      	ldr	r3, [sp, #12]
 800394e:	7832      	ldrb	r2, [r6, #0]
 8003950:	cb01      	ldmia	r3!, {r0}
 8003952:	b2d2      	uxtb	r2, r2
 8003954:	9303      	str	r3, [sp, #12]
 8003956:	2300      	movs	r3, #0
 8003958:	0019      	movs	r1, r3
 800395a:	f001 ff8d 	bl	8005878 <__aeabi_lmul>
 800395e:	9a00      	ldr	r2, [sp, #0]
 8003960:	9b01      	ldr	r3, [sp, #4]
 8003962:	1812      	adds	r2, r2, r0
 8003964:	414b      	adcs	r3, r1
 8003966:	3601      	adds	r6, #1
 8003968:	9200      	str	r2, [sp, #0]
 800396a:	9301      	str	r3, [sp, #4]
 800396c:	e7c0      	b.n	80038f0 <lg_accept_ai+0x100>
 800396e:	2101      	movs	r1, #1
 8003970:	4a17      	ldr	r2, [pc, #92]	@ (80039d0 <lg_accept_ai+0x1e0>)
 8003972:	54a3      	strb	r3, [r4, r2]
 8003974:	4a17      	ldr	r2, [pc, #92]	@ (80039d4 <lg_accept_ai+0x1e4>)
 8003976:	54a1      	strb	r1, [r4, r2]
 8003978:	3231      	adds	r2, #49	@ 0x31
 800397a:	58a1      	ldr	r1, [r4, r2]
 800397c:	3a30      	subs	r2, #48	@ 0x30
 800397e:	50a1      	str	r1, [r4, r2]
 8003980:	2b00      	cmp	r3, #0
 8003982:	d01d      	beq.n	80039c0 <lg_accept_ai+0x1d0>
 8003984:	2381      	movs	r3, #129	@ 0x81
 8003986:	009b      	lsls	r3, r3, #2
 8003988:	5ce6      	ldrb	r6, [r4, r3]
 800398a:	2e01      	cmp	r6, #1
 800398c:	d106      	bne.n	800399c <lg_accept_ai+0x1ac>
 800398e:	0020      	movs	r0, r4
 8003990:	9902      	ldr	r1, [sp, #8]
 8003992:	f7ff fc97 	bl	80032c4 <apply>
 8003996:	2385      	movs	r3, #133	@ 0x85
 8003998:	009b      	lsls	r3, r3, #2
 800399a:	54e6      	strb	r6, [r4, r3]
 800399c:	238e      	movs	r3, #142	@ 0x8e
 800399e:	6a28      	ldr	r0, [r5, #32]
 80039a0:	6a69      	ldr	r1, [r5, #36]	@ 0x24
 80039a2:	2201      	movs	r2, #1
 80039a4:	009b      	lsls	r3, r3, #2
 80039a6:	54e2      	strb	r2, [r4, r3]
 80039a8:	3b08      	subs	r3, #8
 80039aa:	18e3      	adds	r3, r4, r3
 80039ac:	c303      	stmia	r3!, {r0, r1}
 80039ae:	238f      	movs	r3, #143	@ 0x8f
 80039b0:	009b      	lsls	r3, r3, #2
 80039b2:	58e2      	ldr	r2, [r4, r3]
 80039b4:	3304      	adds	r3, #4
 80039b6:	50e2      	str	r2, [r4, r3]
 80039b8:	2300      	movs	r3, #0
 80039ba:	4a04      	ldr	r2, [pc, #16]	@ (80039cc <lg_accept_ai+0x1dc>)
 80039bc:	54a3      	strb	r3, [r4, r2]
 80039be:	e7c2      	b.n	8003946 <lg_accept_ai+0x156>
 80039c0:	0020      	movs	r0, r4
 80039c2:	f7ff fc71 	bl	80032a8 <clear_output>
 80039c6:	e7e9      	b.n	800399c <lg_accept_ai+0x1ac>
 80039c8:	00000209 	.word	0x00000209
 80039cc:	00000213 	.word	0x00000213
 80039d0:	0000020a 	.word	0x0000020a
 80039d4:	0000020b 	.word	0x0000020b

080039d8 <lg_set_manual>:
 80039d8:	b5f0      	push	{r4, r5, r6, r7, lr}
 80039da:	b085      	sub	sp, #20
 80039dc:	0004      	movs	r4, r0
 80039de:	0017      	movs	r7, r2
 80039e0:	9103      	str	r1, [sp, #12]
 80039e2:	2800      	cmp	r0, #0
 80039e4:	d039      	beq.n	8003a5a <lg_set_manual+0x82>
 80039e6:	2900      	cmp	r1, #0
 80039e8:	d037      	beq.n	8003a5a <lg_set_manual+0x82>
 80039ea:	0019      	movs	r1, r3
 80039ec:	f7ff fc8c 	bl	8003308 <service>
 80039f0:	1e05      	subs	r5, r0, #0
 80039f2:	d033      	beq.n	8003a5c <lg_set_manual+0x84>
 80039f4:	2381      	movs	r3, #129	@ 0x81
 80039f6:	009b      	lsls	r3, r3, #2
 80039f8:	5ce3      	ldrb	r3, [r4, r3]
 80039fa:	2b02      	cmp	r3, #2
 80039fc:	d12d      	bne.n	8003a5a <lg_set_manual+0x82>
 80039fe:	4b24      	ldr	r3, [pc, #144]	@ (8003a90 <lg_set_manual+0xb8>)
 8003a00:	5ce3      	ldrb	r3, [r4, r3]
 8003a02:	2b00      	cmp	r3, #0
 8003a04:	d026      	beq.n	8003a54 <lg_set_manual+0x7c>
 8003a06:	4b23      	ldr	r3, [pc, #140]	@ (8003a94 <lg_set_manual+0xbc>)
 8003a08:	5ce5      	ldrb	r5, [r4, r3]
 8003a0a:	2d00      	cmp	r5, #0
 8003a0c:	d022      	beq.n	8003a54 <lg_set_manual+0x7c>
 8003a0e:	8826      	ldrh	r6, [r4, #0]
 8003a10:	42be      	cmp	r6, r7
 8003a12:	d11f      	bne.n	8003a54 <lg_set_manual+0x7c>
 8003a14:	3b12      	subs	r3, #18
 8003a16:	58e0      	ldr	r0, [r4, r3]
 8003a18:	22ff      	movs	r2, #255	@ 0xff
 8003a1a:	2300      	movs	r3, #0
 8003a1c:	2100      	movs	r1, #0
 8003a1e:	f001 ff2b 	bl	8005878 <__aeabi_lmul>
 8003a22:	0027      	movs	r7, r4
 8003a24:	9b03      	ldr	r3, [sp, #12]
 8003a26:	9000      	str	r0, [sp, #0]
 8003a28:	9101      	str	r1, [sp, #4]
 8003a2a:	3710      	adds	r7, #16
 8003a2c:	9302      	str	r3, [sp, #8]
 8003a2e:	199e      	adds	r6, r3, r6
 8003a30:	9b02      	ldr	r3, [sp, #8]
 8003a32:	42b3      	cmp	r3, r6
 8003a34:	d115      	bne.n	8003a62 <lg_set_manual+0x8a>
 8003a36:	23fe      	movs	r3, #254	@ 0xfe
 8003a38:	005b      	lsls	r3, r3, #1
 8003a3a:	58e0      	ldr	r0, [r4, r3]
 8003a3c:	22ff      	movs	r2, #255	@ 0xff
 8003a3e:	2300      	movs	r3, #0
 8003a40:	2100      	movs	r1, #0
 8003a42:	f001 ff19 	bl	8005878 <__aeabi_lmul>
 8003a46:	9b01      	ldr	r3, [sp, #4]
 8003a48:	428b      	cmp	r3, r1
 8003a4a:	d803      	bhi.n	8003a54 <lg_set_manual+0x7c>
 8003a4c:	d11b      	bne.n	8003a86 <lg_set_manual+0xae>
 8003a4e:	9b00      	ldr	r3, [sp, #0]
 8003a50:	4283      	cmp	r3, r0
 8003a52:	d918      	bls.n	8003a86 <lg_set_manual+0xae>
 8003a54:	0020      	movs	r0, r4
 8003a56:	f7ff fc27 	bl	80032a8 <clear_output>
 8003a5a:	2500      	movs	r5, #0
 8003a5c:	0028      	movs	r0, r5
 8003a5e:	b005      	add	sp, #20
 8003a60:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8003a62:	9b02      	ldr	r3, [sp, #8]
 8003a64:	cf01      	ldmia	r7!, {r0}
 8003a66:	781a      	ldrb	r2, [r3, #0]
 8003a68:	2300      	movs	r3, #0
 8003a6a:	b2d2      	uxtb	r2, r2
 8003a6c:	0019      	movs	r1, r3
 8003a6e:	f001 ff03 	bl	8005878 <__aeabi_lmul>
 8003a72:	9a00      	ldr	r2, [sp, #0]
 8003a74:	9b01      	ldr	r3, [sp, #4]
 8003a76:	1812      	adds	r2, r2, r0
 8003a78:	414b      	adcs	r3, r1
 8003a7a:	9200      	str	r2, [sp, #0]
 8003a7c:	9301      	str	r3, [sp, #4]
 8003a7e:	9b02      	ldr	r3, [sp, #8]
 8003a80:	3301      	adds	r3, #1
 8003a82:	9302      	str	r3, [sp, #8]
 8003a84:	e7d4      	b.n	8003a30 <lg_set_manual+0x58>
 8003a86:	0020      	movs	r0, r4
 8003a88:	9903      	ldr	r1, [sp, #12]
 8003a8a:	f7ff fc1b 	bl	80032c4 <apply>
 8003a8e:	e7e5      	b.n	8003a5c <lg_set_manual+0x84>
 8003a90:	00000209 	.word	0x00000209
 8003a94:	0000020a 	.word	0x0000020a

08003a98 <reject_invalid>:
 8003a98:	b530      	push	{r4, r5, lr}
 8003a9a:	0004      	movs	r4, r0
 8003a9c:	000d      	movs	r5, r1
 8003a9e:	b0ad      	sub	sp, #180	@ 0xb4
 8003aa0:	22b0      	movs	r2, #176	@ 0xb0
 8003aa2:	2100      	movs	r1, #0
 8003aa4:	4668      	mov	r0, sp
 8003aa6:	f7fc fb8c 	bl	80001c2 <memset>
 8003aaa:	002a      	movs	r2, r5
 8003aac:	4669      	mov	r1, sp
 8003aae:	0020      	movs	r0, r4
 8003ab0:	f7ff fe9e 	bl	80037f0 <lg_accept_ai>
 8003ab4:	b02d      	add	sp, #180	@ 0xb4
 8003ab6:	bd30      	pop	{r4, r5, pc}

08003ab8 <lg_accept_ai_decoded_result>:
 8003ab8:	b5f0      	push	{r4, r5, r6, r7, lr}
 8003aba:	0006      	movs	r6, r0
 8003abc:	b0ad      	sub	sp, #180	@ 0xb4
 8003abe:	000c      	movs	r4, r1
 8003ac0:	0017      	movs	r7, r2
 8003ac2:	2100      	movs	r1, #0
 8003ac4:	22b0      	movs	r2, #176	@ 0xb0
 8003ac6:	4668      	mov	r0, sp
 8003ac8:	f7fc fb7b 	bl	80001c2 <memset>
 8003acc:	466d      	mov	r5, sp
 8003ace:	1e30      	subs	r0, r6, #0
 8003ad0:	d00e      	beq.n	8003af0 <lg_accept_ai_decoded_result+0x38>
 8003ad2:	2c00      	cmp	r4, #0
 8003ad4:	d008      	beq.n	8003ae8 <lg_accept_ai_decoded_result+0x30>
 8003ad6:	8a22      	ldrh	r2, [r4, #16]
 8003ad8:	1e53      	subs	r3, r2, #1
 8003ada:	2b79      	cmp	r3, #121	@ 0x79
 8003adc:	d804      	bhi.n	8003ae8 <lg_accept_ai_decoded_result+0x30>
 8003ade:	0023      	movs	r3, r4
 8003ae0:	3328      	adds	r3, #40	@ 0x28
 8003ae2:	7819      	ldrb	r1, [r3, #0]
 8003ae4:	2901      	cmp	r1, #1
 8003ae6:	d905      	bls.n	8003af4 <lg_accept_ai_decoded_result+0x3c>
 8003ae8:	0039      	movs	r1, r7
 8003aea:	0030      	movs	r0, r6
 8003aec:	f7ff ffd4 	bl	8003a98 <reject_invalid>
 8003af0:	b02d      	add	sp, #180	@ 0xb4
 8003af2:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8003af4:	2001      	movs	r0, #1
 8003af6:	000b      	movs	r3, r1
 8003af8:	4003      	ands	r3, r0
 8003afa:	4201      	tst	r1, r0
 8003afc:	d10b      	bne.n	8003b16 <lg_accept_ai_decoded_result+0x5e>
 8003afe:	3028      	adds	r0, #40	@ 0x28
 8003b00:	4684      	mov	ip, r0
 8003b02:	0019      	movs	r1, r3
 8003b04:	44a4      	add	ip, r4
 8003b06:	4660      	mov	r0, ip
 8003b08:	5c40      	ldrb	r0, [r0, r1]
 8003b0a:	2800      	cmp	r0, #0
 8003b0c:	d1ec      	bne.n	8003ae8 <lg_accept_ai_decoded_result+0x30>
 8003b0e:	3101      	adds	r1, #1
 8003b10:	b288      	uxth	r0, r1
 8003b12:	4282      	cmp	r2, r0
 8003b14:	d8f7      	bhi.n	8003b06 <lg_accept_ai_decoded_result+0x4e>
 8003b16:	6820      	ldr	r0, [r4, #0]
 8003b18:	6861      	ldr	r1, [r4, #4]
 8003b1a:	9000      	str	r0, [sp, #0]
 8003b1c:	9101      	str	r1, [sp, #4]
 8003b1e:	68a1      	ldr	r1, [r4, #8]
 8003b20:	862a      	strh	r2, [r5, #48]	@ 0x30
 8003b22:	60a9      	str	r1, [r5, #8]
 8003b24:	69a0      	ldr	r0, [r4, #24]
 8003b26:	69e1      	ldr	r1, [r4, #28]
 8003b28:	61a8      	str	r0, [r5, #24]
 8003b2a:	61e9      	str	r1, [r5, #28]
 8003b2c:	6a20      	ldr	r0, [r4, #32]
 8003b2e:	6a61      	ldr	r1, [r4, #36]	@ 0x24
 8003b30:	6228      	str	r0, [r5, #32]
 8003b32:	6269      	str	r1, [r5, #36]	@ 0x24
 8003b34:	68e1      	ldr	r1, [r4, #12]
 8003b36:	2032      	movs	r0, #50	@ 0x32
 8003b38:	62e9      	str	r1, [r5, #44]	@ 0x2c
 8003b3a:	a90a      	add	r1, sp, #40	@ 0x28
 8003b3c:	700b      	strb	r3, [r1, #0]
 8003b3e:	0021      	movs	r1, r4
 8003b40:	4468      	add	r0, sp
 8003b42:	3129      	adds	r1, #41	@ 0x29
 8003b44:	f7fc fb34 	bl	80001b0 <memcpy>
 8003b48:	003a      	movs	r2, r7
 8003b4a:	0029      	movs	r1, r5
 8003b4c:	0030      	movs	r0, r6
 8003b4e:	f7ff fe4f 	bl	80037f0 <lg_accept_ai>
 8003b52:	e7cd      	b.n	8003af0 <lg_accept_ai_decoded_result+0x38>

08003b54 <lg_accept_ai_packet>:
 8003b54:	b530      	push	{r4, r5, lr}
 8003b56:	b0ab      	sub	sp, #172	@ 0xac
 8003b58:	0004      	movs	r4, r0
 8003b5a:	0008      	movs	r0, r1
 8003b5c:	0011      	movs	r1, r2
 8003b5e:	466a      	mov	r2, sp
 8003b60:	001d      	movs	r5, r3
 8003b62:	f7ff f8bf 	bl	8002ce4 <aiw_decode_result>
 8003b66:	2800      	cmp	r0, #0
 8003b68:	d105      	bne.n	8003b76 <lg_accept_ai_packet+0x22>
 8003b6a:	0029      	movs	r1, r5
 8003b6c:	0020      	movs	r0, r4
 8003b6e:	f7ff ff93 	bl	8003a98 <reject_invalid>
 8003b72:	b02b      	add	sp, #172	@ 0xac
 8003b74:	bd30      	pop	{r4, r5, pc}
 8003b76:	002a      	movs	r2, r5
 8003b78:	4669      	mov	r1, sp
 8003b7a:	0020      	movs	r0, r4
 8003b7c:	f7ff ff9c 	bl	8003ab8 <lg_accept_ai_decoded_result>
 8003b80:	e7f7      	b.n	8003b72 <lg_accept_ai_packet+0x1e>

08003b82 <lamp_ticket_dispatch_issue>:
 8003b82:	b5f0      	push	{r4, r5, r6, r7, lr}
 8003b84:	2400      	movs	r4, #0
 8003b86:	b0c3      	sub	sp, #268	@ 0x10c
 8003b88:	0006      	movs	r6, r0
 8003b8a:	0017      	movs	r7, r2
 8003b8c:	9301      	str	r3, [sp, #4]
 8003b8e:	9403      	str	r4, [sp, #12]
 8003b90:	42a0      	cmp	r0, r4
 8003b92:	d103      	bne.n	8003b9c <lamp_ticket_dispatch_issue+0x1a>
 8003b94:	2103      	movs	r1, #3
 8003b96:	0008      	movs	r0, r1
 8003b98:	b043      	add	sp, #268	@ 0x10c
 8003b9a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8003b9c:	2a00      	cmp	r2, #0
 8003b9e:	d0f9      	beq.n	8003b94 <lamp_ticket_dispatch_issue+0x12>
 8003ba0:	ad16      	add	r5, sp, #88	@ 0x58
 8003ba2:	002a      	movs	r2, r5
 8003ba4:	f7ff fdac 	bl	8003700 <lg_issue_ticket>
 8003ba8:	0021      	movs	r1, r4
 8003baa:	2800      	cmp	r0, #0
 8003bac:	d0f3      	beq.n	8003b96 <lamp_ticket_dispatch_issue+0x14>
 8003bae:	ac04      	add	r4, sp, #16
 8003bb0:	2220      	movs	r2, #32
 8003bb2:	0020      	movs	r0, r4
 8003bb4:	f7fc fb05 	bl	80001c2 <memset>
 8003bb8:	9a16      	ldr	r2, [sp, #88]	@ 0x58
 8003bba:	9b17      	ldr	r3, [sp, #92]	@ 0x5c
 8003bbc:	9204      	str	r2, [sp, #16]
 8003bbe:	9305      	str	r3, [sp, #20]
 8003bc0:	9b18      	ldr	r3, [sp, #96]	@ 0x60
 8003bc2:	0020      	movs	r0, r4
 8003bc4:	9306      	str	r3, [sp, #24]
 8003bc6:	9b21      	ldr	r3, [sp, #132]	@ 0x84
 8003bc8:	a90d      	add	r1, sp, #52	@ 0x34
 8003bca:	9307      	str	r3, [sp, #28]
 8003bcc:	8e2b      	ldrh	r3, [r5, #48]	@ 0x30
 8003bce:	8223      	strh	r3, [r4, #16]
 8003bd0:	9a1a      	ldr	r2, [sp, #104]	@ 0x68
 8003bd2:	9b1b      	ldr	r3, [sp, #108]	@ 0x6c
 8003bd4:	920a      	str	r2, [sp, #40]	@ 0x28
 8003bd6:	930b      	str	r3, [sp, #44]	@ 0x2c
 8003bd8:	2224      	movs	r2, #36	@ 0x24
 8003bda:	ab03      	add	r3, sp, #12
 8003bdc:	f7fe ff68 	bl	8002ab0 <aiw_encode_ticket>
 8003be0:	2800      	cmp	r0, #0
 8003be2:	d104      	bne.n	8003bee <lamp_ticket_dispatch_issue+0x6c>
 8003be4:	0030      	movs	r0, r6
 8003be6:	f7ff fca9 	bl	800353c <lg_stop>
 8003bea:	2102      	movs	r1, #2
 8003bec:	e7d3      	b.n	8003b96 <lamp_ticket_dispatch_issue+0x14>
 8003bee:	9a03      	ldr	r2, [sp, #12]
 8003bf0:	2a00      	cmp	r2, #0
 8003bf2:	d0f7      	beq.n	8003be4 <lamp_ticket_dispatch_issue+0x62>
 8003bf4:	9801      	ldr	r0, [sp, #4]
 8003bf6:	a90d      	add	r1, sp, #52	@ 0x34
 8003bf8:	47b8      	blx	r7
 8003bfa:	2800      	cmp	r0, #0
 8003bfc:	d0f2      	beq.n	8003be4 <lamp_ticket_dispatch_issue+0x62>
 8003bfe:	2101      	movs	r1, #1
 8003c00:	e7c9      	b.n	8003b96 <lamp_ticket_dispatch_issue+0x14>
	...

08003c04 <lp_resolve_duration>:
 8003c04:	b510      	push	{r4, lr}
 8003c06:	2a00      	cmp	r2, #0
 8003c08:	d101      	bne.n	8003c0e <lp_resolve_duration+0xa>
 8003c0a:	2000      	movs	r0, #0
 8003c0c:	bd10      	pop	{r4, pc}
 8003c0e:	1e43      	subs	r3, r0, #1
 8003c10:	2b01      	cmp	r3, #1
 8003c12:	d8fa      	bhi.n	8003c0a <lp_resolve_duration+0x6>
 8003c14:	2905      	cmp	r1, #5
 8003c16:	d8f8      	bhi.n	8003c0a <lp_resolve_duration+0x6>
 8003c18:	4b08      	ldr	r3, [pc, #32]	@ (8003c3c <lp_resolve_duration+0x38>)
 8003c1a:	008c      	lsls	r4, r1, #2
 8003c1c:	3904      	subs	r1, #4
 8003c1e:	58e3      	ldr	r3, [r4, r3]
 8003c20:	2901      	cmp	r1, #1
 8003c22:	d804      	bhi.n	8003c2e <lp_resolve_duration+0x2a>
 8003c24:	2802      	cmp	r0, #2
 8003c26:	d1f0      	bne.n	8003c0a <lp_resolve_duration+0x6>
 8003c28:	2001      	movs	r0, #1
 8003c2a:	6013      	str	r3, [r2, #0]
 8003c2c:	e7ee      	b.n	8003c0c <lp_resolve_duration+0x8>
 8003c2e:	2801      	cmp	r0, #1
 8003c30:	d1fa      	bne.n	8003c28 <lp_resolve_duration+0x24>
 8003c32:	4903      	ldr	r1, [pc, #12]	@ (8003c40 <lp_resolve_duration+0x3c>)
 8003c34:	428b      	cmp	r3, r1
 8003c36:	d8e8      	bhi.n	8003c0a <lp_resolve_duration+0x6>
 8003c38:	e7f6      	b.n	8003c28 <lp_resolve_duration+0x24>
 8003c3a:	46c0      	nop			@ (mov r8, r8)
 8003c3c:	08005e1c 	.word	0x08005e1c
 8003c40:	00015f90 	.word	0x00015f90

08003c44 <lp_resolve_one_touch_mode>:
 8003c44:	b573      	push	{r0, r1, r4, r5, r6, lr}
 8003c46:	0016      	movs	r6, r2
 8003c48:	001d      	movs	r5, r3
 8003c4a:	2a00      	cmp	r2, #0
 8003c4c:	d101      	bne.n	8003c52 <lp_resolve_one_touch_mode+0xe>
 8003c4e:	2000      	movs	r0, #0
 8003c50:	bd76      	pop	{r1, r2, r4, r5, r6, pc}
 8003c52:	2b00      	cmp	r3, #0
 8003c54:	d0fb      	beq.n	8003c4e <lp_resolve_one_touch_mode+0xa>
 8003c56:	2802      	cmp	r0, #2
 8003c58:	d8f9      	bhi.n	8003c4e <lp_resolve_one_touch_mode+0xa>
 8003c5a:	2903      	cmp	r1, #3
 8003c5c:	d8f7      	bhi.n	8003c4e <lp_resolve_one_touch_mode+0xa>
 8003c5e:	2402      	movs	r4, #2
 8003c60:	000b      	movs	r3, r1
 8003c62:	43a3      	bics	r3, r4
 8003c64:	2b01      	cmp	r3, #1
 8003c66:	d004      	beq.n	8003c72 <lp_resolve_one_touch_mode+0x2e>
 8003c68:	1c04      	adds	r4, r0, #0
 8003c6a:	2800      	cmp	r0, #0
 8003c6c:	d100      	bne.n	8003c70 <lp_resolve_one_touch_mode+0x2c>
 8003c6e:	2401      	movs	r4, #1
 8003c70:	b2e4      	uxtb	r4, r4
 8003c72:	0020      	movs	r0, r4
 8003c74:	aa01      	add	r2, sp, #4
 8003c76:	f7ff ffc5 	bl	8003c04 <lp_resolve_duration>
 8003c7a:	2800      	cmp	r0, #0
 8003c7c:	d0e8      	beq.n	8003c50 <lp_resolve_one_touch_mode+0xc>
 8003c7e:	9b01      	ldr	r3, [sp, #4]
 8003c80:	7034      	strb	r4, [r6, #0]
 8003c82:	602b      	str	r3, [r5, #0]
 8003c84:	e7e4      	b.n	8003c50 <lp_resolve_one_touch_mode+0xc>

08003c86 <lp_arm_recipe>:
 8003c86:	b573      	push	{r0, r1, r4, r5, r6, lr}
 8003c88:	000d      	movs	r5, r1
 8003c8a:	0004      	movs	r4, r0
 8003c8c:	0011      	movs	r1, r2
 8003c8e:	001e      	movs	r6, r3
 8003c90:	2800      	cmp	r0, #0
 8003c92:	d00b      	beq.n	8003cac <lp_arm_recipe+0x26>
 8003c94:	0028      	movs	r0, r5
 8003c96:	aa01      	add	r2, sp, #4
 8003c98:	f7ff ffb4 	bl	8003c04 <lp_resolve_duration>
 8003c9c:	2800      	cmp	r0, #0
 8003c9e:	d005      	beq.n	8003cac <lp_arm_recipe+0x26>
 8003ca0:	0033      	movs	r3, r6
 8003ca2:	0029      	movs	r1, r5
 8003ca4:	0020      	movs	r0, r4
 8003ca6:	9a01      	ldr	r2, [sp, #4]
 8003ca8:	f7ff fcaa 	bl	8003600 <lg_arm>
 8003cac:	bd76      	pop	{r1, r2, r4, r5, r6, pc}

08003cae <lp_arm_one_touch_recipe>:
 8003cae:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8003cb0:	000f      	movs	r7, r1
 8003cb2:	0004      	movs	r4, r0
 8003cb4:	0011      	movs	r1, r2
 8003cb6:	001e      	movs	r6, r3
 8003cb8:	2800      	cmp	r0, #0
 8003cba:	d00e      	beq.n	8003cda <lp_arm_one_touch_recipe+0x2c>
 8003cbc:	466b      	mov	r3, sp
 8003cbe:	1cdd      	adds	r5, r3, #3
 8003cc0:	002a      	movs	r2, r5
 8003cc2:	0038      	movs	r0, r7
 8003cc4:	ab01      	add	r3, sp, #4
 8003cc6:	f7ff ffbd 	bl	8003c44 <lp_resolve_one_touch_mode>
 8003cca:	2800      	cmp	r0, #0
 8003ccc:	d005      	beq.n	8003cda <lp_arm_one_touch_recipe+0x2c>
 8003cce:	0033      	movs	r3, r6
 8003cd0:	0020      	movs	r0, r4
 8003cd2:	7829      	ldrb	r1, [r5, #0]
 8003cd4:	9a01      	ldr	r2, [sp, #4]
 8003cd6:	f7ff fc93 	bl	8003600 <lg_arm>
 8003cda:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}

08003cdc <lamp_ui_resolve_button>:
 8003cdc:	b5f0      	push	{r4, r5, r6, r7, lr}
 8003cde:	0007      	movs	r7, r0
 8003ce0:	000e      	movs	r6, r1
 8003ce2:	0015      	movs	r5, r2
 8003ce4:	b085      	sub	sp, #20
 8003ce6:	2a00      	cmp	r2, #0
 8003ce8:	d102      	bne.n	8003cf0 <lamp_ui_resolve_button+0x14>
 8003cea:	2000      	movs	r0, #0
 8003cec:	b005      	add	sp, #20
 8003cee:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8003cf0:	ac02      	add	r4, sp, #8
 8003cf2:	2208      	movs	r2, #8
 8003cf4:	2100      	movs	r1, #0
 8003cf6:	0020      	movs	r0, r4
 8003cf8:	f7fc fa63 	bl	80001c2 <memset>
 8003cfc:	2306      	movs	r3, #6
 8003cfe:	7067      	strb	r7, [r4, #1]
 8003d00:	70a3      	strb	r3, [r4, #2]
 8003d02:	2e07      	cmp	r6, #7
 8003d04:	d105      	bne.n	8003d12 <lamp_ui_resolve_button+0x36>
 8003d06:	3b03      	subs	r3, #3
 8003d08:	7023      	strb	r3, [r4, #0]
 8003d0a:	2001      	movs	r0, #1
 8003d0c:	cc06      	ldmia	r4!, {r1, r2}
 8003d0e:	c506      	stmia	r5!, {r1, r2}
 8003d10:	e7ec      	b.n	8003cec <lamp_ui_resolve_button+0x10>
 8003d12:	2f03      	cmp	r7, #3
 8003d14:	d0e9      	beq.n	8003cea <lamp_ui_resolve_button+0xe>
 8003d16:	2e04      	cmp	r6, #4
 8003d18:	d104      	bne.n	8003d24 <lamp_ui_resolve_button+0x48>
 8003d1a:	2f02      	cmp	r7, #2
 8003d1c:	d8e5      	bhi.n	8003cea <lamp_ui_resolve_button+0xe>
 8003d1e:	4b15      	ldr	r3, [pc, #84]	@ (8003d74 <lamp_ui_resolve_button+0x98>)
 8003d20:	8023      	strh	r3, [r4, #0]
 8003d22:	e7f2      	b.n	8003d0a <lamp_ui_resolve_button+0x2e>
 8003d24:	2e03      	cmp	r6, #3
 8003d26:	d811      	bhi.n	8003d4c <lamp_ui_resolve_button+0x70>
 8003d28:	466a      	mov	r2, sp
 8003d2a:	0031      	movs	r1, r6
 8003d2c:	0038      	movs	r0, r7
 8003d2e:	ab03      	add	r3, sp, #12
 8003d30:	3207      	adds	r2, #7
 8003d32:	f7ff ff87 	bl	8003c44 <lp_resolve_one_touch_mode>
 8003d36:	2800      	cmp	r0, #0
 8003d38:	d0d8      	beq.n	8003cec <lamp_ui_resolve_button+0x10>
 8003d3a:	2302      	movs	r3, #2
 8003d3c:	7023      	strb	r3, [r4, #0]
 8003d3e:	466b      	mov	r3, sp
 8003d40:	79db      	ldrb	r3, [r3, #7]
 8003d42:	7063      	strb	r3, [r4, #1]
 8003d44:	70a6      	strb	r6, [r4, #2]
 8003d46:	cc06      	ldmia	r4!, {r1, r2}
 8003d48:	c506      	stmia	r5!, {r1, r2}
 8003d4a:	e7cf      	b.n	8003cec <lamp_ui_resolve_button+0x10>
 8003d4c:	2f02      	cmp	r7, #2
 8003d4e:	d1cc      	bne.n	8003cea <lamp_ui_resolve_button+0xe>
 8003d50:	2e05      	cmp	r6, #5
 8003d52:	d00c      	beq.n	8003d6e <lamp_ui_resolve_button+0x92>
 8003d54:	2e06      	cmp	r6, #6
 8003d56:	d1c8      	bne.n	8003cea <lamp_ui_resolve_button+0xe>
 8003d58:	3e01      	subs	r6, #1
 8003d5a:	0031      	movs	r1, r6
 8003d5c:	2002      	movs	r0, #2
 8003d5e:	aa03      	add	r2, sp, #12
 8003d60:	f7ff ff50 	bl	8003c04 <lp_resolve_duration>
 8003d64:	2800      	cmp	r0, #0
 8003d66:	d0c1      	beq.n	8003cec <lamp_ui_resolve_button+0x10>
 8003d68:	4b03      	ldr	r3, [pc, #12]	@ (8003d78 <lamp_ui_resolve_button+0x9c>)
 8003d6a:	8023      	strh	r3, [r4, #0]
 8003d6c:	e7ea      	b.n	8003d44 <lamp_ui_resolve_button+0x68>
 8003d6e:	2604      	movs	r6, #4
 8003d70:	e7f3      	b.n	8003d5a <lamp_ui_resolve_button+0x7e>
 8003d72:	46c0      	nop			@ (mov r8, r8)
 8003d74:	00000201 	.word	0x00000201
 8003d78:	00000202 	.word	0x00000202

08003d7c <fill_live_ack>:
 8003d7c:	b570      	push	{r4, r5, r6, lr}
 8003d7e:	9c05      	ldr	r4, [sp, #20]
 8003d80:	6806      	ldr	r6, [r0, #0]
 8003d82:	6021      	str	r1, [r4, #0]
 8003d84:	7122      	strb	r2, [r4, #4]
 8003d86:	3028      	adds	r0, #40	@ 0x28
 8003d88:	001d      	movs	r5, r3
 8003d8a:	7803      	ldrb	r3, [r0, #0]
 8003d8c:	7163      	strb	r3, [r4, #5]
 8003d8e:	4b0a      	ldr	r3, [pc, #40]	@ (8003db8 <fill_live_ack+0x3c>)
 8003d90:	5cf3      	ldrb	r3, [r6, r3]
 8003d92:	2b00      	cmp	r3, #0
 8003d94:	d00d      	beq.n	8003db2 <fill_live_ack+0x36>
 8003d96:	2381      	movs	r3, #129	@ 0x81
 8003d98:	009b      	lsls	r3, r3, #2
 8003d9a:	5cf3      	ldrb	r3, [r6, r3]
 8003d9c:	2b03      	cmp	r3, #3
 8003d9e:	d008      	beq.n	8003db2 <fill_live_ack+0x36>
 8003da0:	2301      	movs	r3, #1
 8003da2:	0030      	movs	r0, r6
 8003da4:	9904      	ldr	r1, [sp, #16]
 8003da6:	71a3      	strb	r3, [r4, #6]
 8003da8:	f7ff fc8e 	bl	80036c8 <lg_remaining_ms>
 8003dac:	7325      	strb	r5, [r4, #12]
 8003dae:	60a0      	str	r0, [r4, #8]
 8003db0:	bd70      	pop	{r4, r5, r6, pc}
 8003db2:	2000      	movs	r0, #0
 8003db4:	71a0      	strb	r0, [r4, #6]
 8003db6:	e7f9      	b.n	8003dac <fill_live_ack+0x30>
 8003db8:	00000211 	.word	0x00000211

08003dbc <lamp_ui_dispatcher_init>:
 8003dbc:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8003dbe:	9301      	str	r3, [sp, #4]
 8003dc0:	ab08      	add	r3, sp, #32
 8003dc2:	0004      	movs	r4, r0
 8003dc4:	000f      	movs	r7, r1
 8003dc6:	0016      	movs	r6, r2
 8003dc8:	781d      	ldrb	r5, [r3, #0]
 8003dca:	2800      	cmp	r0, #0
 8003dcc:	d101      	bne.n	8003dd2 <lamp_ui_dispatcher_init+0x16>
 8003dce:	2000      	movs	r0, #0
 8003dd0:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8003dd2:	2900      	cmp	r1, #0
 8003dd4:	d0fb      	beq.n	8003dce <lamp_ui_dispatcher_init+0x12>
 8003dd6:	9b01      	ldr	r3, [sp, #4]
 8003dd8:	4313      	orrs	r3, r2
 8003dda:	d0f8      	beq.n	8003dce <lamp_ui_dispatcher_init+0x12>
 8003ddc:	2d02      	cmp	r5, #2
 8003dde:	d8f6      	bhi.n	8003dce <lamp_ui_dispatcher_init+0x12>
 8003de0:	2230      	movs	r2, #48	@ 0x30
 8003de2:	2100      	movs	r1, #0
 8003de4:	f7fc f9ed 	bl	80001c2 <memset>
 8003de8:	9b01      	ldr	r3, [sp, #4]
 8003dea:	6027      	str	r7, [r4, #0]
 8003dec:	60e3      	str	r3, [r4, #12]
 8003dee:	0023      	movs	r3, r4
 8003df0:	3328      	adds	r3, #40	@ 0x28
 8003df2:	60a6      	str	r6, [r4, #8]
 8003df4:	701d      	strb	r5, [r3, #0]
 8003df6:	2308      	movs	r3, #8
 8003df8:	2001      	movs	r0, #1
 8003dfa:	7523      	strb	r3, [r4, #20]
 8003dfc:	e7e8      	b.n	8003dd0 <lamp_ui_dispatcher_init+0x14>

08003dfe <lamp_ui_dispatcher_handle>:
 8003dfe:	b5f0      	push	{r4, r5, r6, r7, lr}
 8003e00:	b087      	sub	sp, #28
 8003e02:	0004      	movs	r4, r0
 8003e04:	000e      	movs	r6, r1
 8003e06:	001d      	movs	r5, r3
 8003e08:	9203      	str	r2, [sp, #12]
 8003e0a:	2800      	cmp	r0, #0
 8003e0c:	d103      	bne.n	8003e16 <lamp_ui_dispatcher_handle+0x18>
 8003e0e:	2700      	movs	r7, #0
 8003e10:	0038      	movs	r0, r7
 8003e12:	b007      	add	sp, #28
 8003e14:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8003e16:	2900      	cmp	r1, #0
 8003e18:	d0f9      	beq.n	8003e0e <lamp_ui_dispatcher_handle+0x10>
 8003e1a:	2b00      	cmp	r3, #0
 8003e1c:	d0f7      	beq.n	8003e0e <lamp_ui_dispatcher_handle+0x10>
 8003e1e:	6802      	ldr	r2, [r0, #0]
 8003e20:	2a00      	cmp	r2, #0
 8003e22:	d0f4      	beq.n	8003e0e <lamp_ui_dispatcher_handle+0x10>
 8003e24:	6880      	ldr	r0, [r0, #8]
 8003e26:	68e3      	ldr	r3, [r4, #12]
 8003e28:	0001      	movs	r1, r0
 8003e2a:	4319      	orrs	r1, r3
 8003e2c:	d0ef      	beq.n	8003e0e <lamp_ui_dispatcher_handle+0x10>
 8003e2e:	68b1      	ldr	r1, [r6, #8]
 8003e30:	2900      	cmp	r1, #0
 8003e32:	d0ec      	beq.n	8003e0e <lamp_ui_dispatcher_handle+0x10>
 8003e34:	6837      	ldr	r7, [r6, #0]
 8003e36:	4287      	cmp	r7, r0
 8003e38:	d102      	bne.n	8003e40 <lamp_ui_dispatcher_handle+0x42>
 8003e3a:	6870      	ldr	r0, [r6, #4]
 8003e3c:	4298      	cmp	r0, r3
 8003e3e:	d009      	beq.n	8003e54 <lamp_ui_dispatcher_handle+0x56>
 8003e40:	9b03      	ldr	r3, [sp, #12]
 8003e42:	2203      	movs	r2, #3
 8003e44:	9300      	str	r3, [sp, #0]
 8003e46:	0020      	movs	r0, r4
 8003e48:	2300      	movs	r3, #0
 8003e4a:	9501      	str	r5, [sp, #4]
 8003e4c:	f7ff ff96 	bl	8003d7c <fill_live_ack>
 8003e50:	2701      	movs	r7, #1
 8003e52:	e7dd      	b.n	8003e10 <lamp_ui_dispatcher_handle+0x12>
 8003e54:	0020      	movs	r0, r4
 8003e56:	3029      	adds	r0, #41	@ 0x29
 8003e58:	7807      	ldrb	r7, [r0, #0]
 8003e5a:	2f00      	cmp	r7, #0
 8003e5c:	d01e      	beq.n	8003e9c <lamp_ui_dispatcher_handle+0x9e>
 8003e5e:	6923      	ldr	r3, [r4, #16]
 8003e60:	4299      	cmp	r1, r3
 8003e62:	d112      	bne.n	8003e8a <lamp_ui_dispatcher_handle+0x8c>
 8003e64:	7b32      	ldrb	r2, [r6, #12]
 8003e66:	7d23      	ldrb	r3, [r4, #20]
 8003e68:	429a      	cmp	r2, r3
 8003e6a:	d008      	beq.n	8003e7e <lamp_ui_dispatcher_handle+0x80>
 8003e6c:	9b03      	ldr	r3, [sp, #12]
 8003e6e:	2205      	movs	r2, #5
 8003e70:	9300      	str	r3, [sp, #0]
 8003e72:	2300      	movs	r3, #0
 8003e74:	9501      	str	r5, [sp, #4]
 8003e76:	0020      	movs	r0, r4
 8003e78:	f7ff ff80 	bl	8003d7c <fill_live_ack>
 8003e7c:	e7c8      	b.n	8003e10 <lamp_ui_dispatcher_handle+0x12>
 8003e7e:	9b03      	ldr	r3, [sp, #12]
 8003e80:	7f22      	ldrb	r2, [r4, #28]
 8003e82:	9300      	str	r3, [sp, #0]
 8003e84:	9501      	str	r5, [sp, #4]
 8003e86:	2301      	movs	r3, #1
 8003e88:	e7f5      	b.n	8003e76 <lamp_ui_dispatcher_handle+0x78>
 8003e8a:	1acb      	subs	r3, r1, r3
 8003e8c:	2b00      	cmp	r3, #0
 8003e8e:	dc05      	bgt.n	8003e9c <lamp_ui_dispatcher_handle+0x9e>
 8003e90:	9b03      	ldr	r3, [sp, #12]
 8003e92:	2204      	movs	r2, #4
 8003e94:	9300      	str	r3, [sp, #0]
 8003e96:	9501      	str	r5, [sp, #4]
 8003e98:	2300      	movs	r3, #0
 8003e9a:	e7ec      	b.n	8003e76 <lamp_ui_dispatcher_handle+0x78>
 8003e9c:	2301      	movs	r3, #1
 8003e9e:	7003      	strb	r3, [r0, #0]
 8003ea0:	2381      	movs	r3, #129	@ 0x81
 8003ea2:	6121      	str	r1, [r4, #16]
 8003ea4:	7b31      	ldrb	r1, [r6, #12]
 8003ea6:	009b      	lsls	r3, r3, #2
 8003ea8:	7521      	strb	r1, [r4, #20]
 8003eaa:	5cd0      	ldrb	r0, [r2, r3]
 8003eac:	2803      	cmp	r0, #3
 8003eae:	d002      	beq.n	8003eb6 <lamp_ui_dispatcher_handle+0xb8>
 8003eb0:	0023      	movs	r3, r4
 8003eb2:	3328      	adds	r3, #40	@ 0x28
 8003eb4:	7818      	ldrb	r0, [r3, #0]
 8003eb6:	af04      	add	r7, sp, #16
 8003eb8:	003a      	movs	r2, r7
 8003eba:	f7ff ff0f 	bl	8003cdc <lamp_ui_resolve_button>
 8003ebe:	2800      	cmp	r0, #0
 8003ec0:	d037      	beq.n	8003f32 <lamp_ui_dispatcher_handle+0x134>
 8003ec2:	783b      	ldrb	r3, [r7, #0]
 8003ec4:	2b03      	cmp	r3, #3
 8003ec6:	d111      	bne.n	8003eec <lamp_ui_dispatcher_handle+0xee>
 8003ec8:	6820      	ldr	r0, [r4, #0]
 8003eca:	f7ff fb37 	bl	800353c <lg_stop>
 8003ece:	2200      	movs	r2, #0
 8003ed0:	9b03      	ldr	r3, [sp, #12]
 8003ed2:	9501      	str	r5, [sp, #4]
 8003ed4:	9300      	str	r3, [sp, #0]
 8003ed6:	0020      	movs	r0, r4
 8003ed8:	2300      	movs	r3, #0
 8003eda:	68b1      	ldr	r1, [r6, #8]
 8003edc:	3418      	adds	r4, #24
 8003ede:	f7ff ff4d 	bl	8003d7c <fill_live_ack>
 8003ee2:	cd0e      	ldmia	r5!, {r1, r2, r3}
 8003ee4:	c40e      	stmia	r4!, {r1, r2, r3}
 8003ee6:	682b      	ldr	r3, [r5, #0]
 8003ee8:	6023      	str	r3, [r4, #0]
 8003eea:	e7b1      	b.n	8003e50 <lamp_ui_dispatcher_handle+0x52>
 8003eec:	2b01      	cmp	r3, #1
 8003eee:	d109      	bne.n	8003f04 <lamp_ui_dispatcher_handle+0x106>
 8003ef0:	787f      	ldrb	r7, [r7, #1]
 8003ef2:	2f02      	cmp	r7, #2
 8003ef4:	d11d      	bne.n	8003f32 <lamp_ui_dispatcher_handle+0x134>
 8003ef6:	6820      	ldr	r0, [r4, #0]
 8003ef8:	f7ff fb20 	bl	800353c <lg_stop>
 8003efc:	0023      	movs	r3, r4
 8003efe:	3328      	adds	r3, #40	@ 0x28
 8003f00:	701f      	strb	r7, [r3, #0]
 8003f02:	e7e4      	b.n	8003ece <lamp_ui_dispatcher_handle+0xd0>
 8003f04:	2b02      	cmp	r3, #2
 8003f06:	d114      	bne.n	8003f32 <lamp_ui_dispatcher_handle+0x134>
 8003f08:	6820      	ldr	r0, [r4, #0]
 8003f0a:	4b0b      	ldr	r3, [pc, #44]	@ (8003f38 <lamp_ui_dispatcher_handle+0x13a>)
 8003f0c:	5cc3      	ldrb	r3, [r0, r3]
 8003f0e:	2b00      	cmp	r3, #0
 8003f10:	d001      	beq.n	8003f16 <lamp_ui_dispatcher_handle+0x118>
 8003f12:	f7ff fb13 	bl	800353c <lg_stop>
 8003f16:	687a      	ldr	r2, [r7, #4]
 8003f18:	7879      	ldrb	r1, [r7, #1]
 8003f1a:	9b03      	ldr	r3, [sp, #12]
 8003f1c:	6820      	ldr	r0, [r4, #0]
 8003f1e:	f7ff fb6f 	bl	8003600 <lg_arm>
 8003f22:	2201      	movs	r2, #1
 8003f24:	2800      	cmp	r0, #0
 8003f26:	d0d3      	beq.n	8003ed0 <lamp_ui_dispatcher_handle+0xd2>
 8003f28:	0023      	movs	r3, r4
 8003f2a:	787a      	ldrb	r2, [r7, #1]
 8003f2c:	3328      	adds	r3, #40	@ 0x28
 8003f2e:	701a      	strb	r2, [r3, #0]
 8003f30:	e7cd      	b.n	8003ece <lamp_ui_dispatcher_handle+0xd0>
 8003f32:	2202      	movs	r2, #2
 8003f34:	e7cc      	b.n	8003ed0 <lamp_ui_dispatcher_handle+0xd2>
 8003f36:	46c0      	nop			@ (mov r8, r8)
 8003f38:	00000211 	.word	0x00000211

08003f3c <lamp_ui_wire_service_init>:
 8003f3c:	b570      	push	{r4, r5, r6, lr}
 8003f3e:	0004      	movs	r4, r0
 8003f40:	000d      	movs	r5, r1
 8003f42:	2800      	cmp	r0, #0
 8003f44:	d101      	bne.n	8003f4a <lamp_ui_wire_service_init+0xe>
 8003f46:	2000      	movs	r0, #0
 8003f48:	bd70      	pop	{r4, r5, r6, pc}
 8003f4a:	2900      	cmp	r1, #0
 8003f4c:	d0fb      	beq.n	8003f46 <lamp_ui_wire_service_init+0xa>
 8003f4e:	2248      	movs	r2, #72	@ 0x48
 8003f50:	2100      	movs	r1, #0
 8003f52:	f7fc f936 	bl	80001c2 <memset>
 8003f56:	2001      	movs	r0, #1
 8003f58:	6025      	str	r5, [r4, #0]
 8003f5a:	e7f5      	b.n	8003f48 <lamp_ui_wire_service_init+0xc>

08003f5c <lamp_ui_wire_service_handle>:
 8003f5c:	b5f0      	push	{r4, r5, r6, r7, lr}
 8003f5e:	b091      	sub	sp, #68	@ 0x44
 8003f60:	0005      	movs	r5, r0
 8003f62:	000e      	movs	r6, r1
 8003f64:	001c      	movs	r4, r3
 8003f66:	9206      	str	r2, [sp, #24]
 8003f68:	2800      	cmp	r0, #0
 8003f6a:	d103      	bne.n	8003f74 <lamp_ui_wire_service_handle+0x18>
 8003f6c:	2700      	movs	r7, #0
 8003f6e:	0038      	movs	r0, r7
 8003f70:	b011      	add	sp, #68	@ 0x44
 8003f72:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8003f74:	6801      	ldr	r1, [r0, #0]
 8003f76:	2900      	cmp	r1, #0
 8003f78:	d0f8      	beq.n	8003f6c <lamp_ui_wire_service_handle+0x10>
 8003f7a:	2e00      	cmp	r6, #0
 8003f7c:	d0f6      	beq.n	8003f6c <lamp_ui_wire_service_handle+0x10>
 8003f7e:	2b00      	cmp	r3, #0
 8003f80:	d0f4      	beq.n	8003f6c <lamp_ui_wire_service_handle+0x10>
 8003f82:	7833      	ldrb	r3, [r6, #0]
 8003f84:	2b01      	cmp	r3, #1
 8003f86:	d17c      	bne.n	8004082 <lamp_ui_wire_service_handle+0x126>
 8003f88:	68b3      	ldr	r3, [r6, #8]
 8003f8a:	68f6      	ldr	r6, [r6, #12]
 8003f8c:	9302      	str	r3, [sp, #8]
 8003f8e:	4333      	orrs	r3, r6
 8003f90:	d0ec      	beq.n	8003f6c <lamp_ui_wire_service_handle+0x10>
 8003f92:	0003      	movs	r3, r0
 8003f94:	3338      	adds	r3, #56	@ 0x38
 8003f96:	9306      	str	r3, [sp, #24]
 8003f98:	781f      	ldrb	r7, [r3, #0]
 8003f9a:	2f00      	cmp	r7, #0
 8003f9c:	d019      	beq.n	8003fd2 <lamp_ui_wire_service_handle+0x76>
 8003f9e:	6903      	ldr	r3, [r0, #16]
 8003fa0:	9a02      	ldr	r2, [sp, #8]
 8003fa2:	9305      	str	r3, [sp, #20]
 8003fa4:	4293      	cmp	r3, r2
 8003fa6:	d114      	bne.n	8003fd2 <lamp_ui_wire_service_handle+0x76>
 8003fa8:	6943      	ldr	r3, [r0, #20]
 8003faa:	9307      	str	r3, [sp, #28]
 8003fac:	42b3      	cmp	r3, r6
 8003fae:	d110      	bne.n	8003fd2 <lamp_ui_wire_service_handle+0x76>
 8003fb0:	2218      	movs	r2, #24
 8003fb2:	2100      	movs	r1, #0
 8003fb4:	0020      	movs	r0, r4
 8003fb6:	f7fc f904 	bl	80001c2 <memset>
 8003fba:	9b05      	ldr	r3, [sp, #20]
 8003fbc:	6023      	str	r3, [r4, #0]
 8003fbe:	9b07      	ldr	r3, [sp, #28]
 8003fc0:	6063      	str	r3, [r4, #4]
 8003fc2:	2300      	movs	r3, #0
 8003fc4:	60a3      	str	r3, [r4, #8]
 8003fc6:	3306      	adds	r3, #6
 8003fc8:	7323      	strb	r3, [r4, #12]
 8003fca:	6beb      	ldr	r3, [r5, #60]	@ 0x3c
 8003fcc:	3301      	adds	r3, #1
 8003fce:	63eb      	str	r3, [r5, #60]	@ 0x3c
 8003fd0:	e7cd      	b.n	8003f6e <lamp_ui_wire_service_handle+0x12>
 8003fd2:	2384      	movs	r3, #132	@ 0x84
 8003fd4:	009b      	lsls	r3, r3, #2
 8003fd6:	5cca      	ldrb	r2, [r1, r3]
 8003fd8:	2301      	movs	r3, #1
 8003fda:	2a00      	cmp	r2, #0
 8003fdc:	d00a      	beq.n	8003ff4 <lamp_ui_wire_service_handle+0x98>
 8003fde:	2386      	movs	r3, #134	@ 0x86
 8003fe0:	009b      	lsls	r3, r3, #2
 8003fe2:	18ca      	adds	r2, r1, r3
 8003fe4:	6813      	ldr	r3, [r2, #0]
 8003fe6:	9802      	ldr	r0, [sp, #8]
 8003fe8:	6852      	ldr	r2, [r2, #4]
 8003fea:	4043      	eors	r3, r0
 8003fec:	4072      	eors	r2, r6
 8003fee:	4313      	orrs	r3, r2
 8003ff0:	425a      	negs	r2, r3
 8003ff2:	4153      	adcs	r3, r2
 8003ff4:	4a59      	ldr	r2, [pc, #356]	@ (800415c <lamp_ui_wire_service_handle+0x200>)
 8003ff6:	5c8a      	ldrb	r2, [r1, r2]
 8003ff8:	9205      	str	r2, [sp, #20]
 8003ffa:	2a00      	cmp	r2, #0
 8003ffc:	d101      	bne.n	8004002 <lamp_ui_wire_service_handle+0xa6>
 8003ffe:	4293      	cmp	r3, r2
 8004000:	d110      	bne.n	8004024 <lamp_ui_wire_service_handle+0xc8>
 8004002:	2218      	movs	r2, #24
 8004004:	2100      	movs	r1, #0
 8004006:	0020      	movs	r0, r4
 8004008:	f7fc f8db 	bl	80001c2 <memset>
 800400c:	9b02      	ldr	r3, [sp, #8]
 800400e:	6066      	str	r6, [r4, #4]
 8004010:	6023      	str	r3, [r4, #0]
 8004012:	2300      	movs	r3, #0
 8004014:	60a3      	str	r3, [r4, #8]
 8004016:	3307      	adds	r3, #7
 8004018:	7323      	strb	r3, [r4, #12]
 800401a:	6c2b      	ldr	r3, [r5, #64]	@ 0x40
 800401c:	3301      	adds	r3, #1
 800401e:	642b      	str	r3, [r5, #64]	@ 0x40
 8004020:	2701      	movs	r7, #1
 8004022:	e7a4      	b.n	8003f6e <lamp_ui_wire_service_handle+0x12>
 8004024:	2381      	movs	r3, #129	@ 0x81
 8004026:	009b      	lsls	r3, r3, #2
 8004028:	5cca      	ldrb	r2, [r1, r3]
 800402a:	1ed3      	subs	r3, r2, #3
 800402c:	1e58      	subs	r0, r3, #1
 800402e:	4183      	sbcs	r3, r0
 8004030:	0028      	movs	r0, r5
 8004032:	425b      	negs	r3, r3
 8004034:	401a      	ands	r2, r3
 8004036:	9200      	str	r2, [sp, #0]
 8004038:	0033      	movs	r3, r6
 800403a:	9a02      	ldr	r2, [sp, #8]
 800403c:	3008      	adds	r0, #8
 800403e:	f7ff febd 	bl	8003dbc <lamp_ui_dispatcher_init>
 8004042:	1e07      	subs	r7, r0, #0
 8004044:	d10a      	bne.n	800405c <lamp_ui_wire_service_handle+0x100>
 8004046:	0001      	movs	r1, r0
 8004048:	2218      	movs	r2, #24
 800404a:	0020      	movs	r0, r4
 800404c:	f7fc f8b9 	bl	80001c2 <memset>
 8004050:	9b02      	ldr	r3, [sp, #8]
 8004052:	6066      	str	r6, [r4, #4]
 8004054:	6023      	str	r3, [r4, #0]
 8004056:	60a7      	str	r7, [r4, #8]
 8004058:	2307      	movs	r3, #7
 800405a:	e7dd      	b.n	8004018 <lamp_ui_wire_service_handle+0xbc>
 800405c:	2301      	movs	r3, #1
 800405e:	9a06      	ldr	r2, [sp, #24]
 8004060:	0020      	movs	r0, r4
 8004062:	7013      	strb	r3, [r2, #0]
 8004064:	6beb      	ldr	r3, [r5, #60]	@ 0x3c
 8004066:	2218      	movs	r2, #24
 8004068:	3301      	adds	r3, #1
 800406a:	63eb      	str	r3, [r5, #60]	@ 0x3c
 800406c:	9905      	ldr	r1, [sp, #20]
 800406e:	f7fc f8a8 	bl	80001c2 <memset>
 8004072:	9b02      	ldr	r3, [sp, #8]
 8004074:	6066      	str	r6, [r4, #4]
 8004076:	6023      	str	r3, [r4, #0]
 8004078:	9b05      	ldr	r3, [sp, #20]
 800407a:	60a3      	str	r3, [r4, #8]
 800407c:	2306      	movs	r3, #6
 800407e:	7323      	strb	r3, [r4, #12]
 8004080:	e775      	b.n	8003f6e <lamp_ui_wire_service_handle+0x12>
 8004082:	2b02      	cmp	r3, #2
 8004084:	d000      	beq.n	8004088 <lamp_ui_wire_service_handle+0x12c>
 8004086:	e771      	b.n	8003f6c <lamp_ui_wire_service_handle+0x10>
 8004088:	6c43      	ldr	r3, [r0, #68]	@ 0x44
 800408a:	68b7      	ldr	r7, [r6, #8]
 800408c:	3301      	adds	r3, #1
 800408e:	6443      	str	r3, [r0, #68]	@ 0x44
 8004090:	68f3      	ldr	r3, [r6, #12]
 8004092:	9305      	str	r3, [sp, #20]
 8004094:	6933      	ldr	r3, [r6, #16]
 8004096:	9302      	str	r3, [sp, #8]
 8004098:	0003      	movs	r3, r0
 800409a:	3338      	adds	r3, #56	@ 0x38
 800409c:	781b      	ldrb	r3, [r3, #0]
 800409e:	2b00      	cmp	r3, #0
 80040a0:	d006      	beq.n	80040b0 <lamp_ui_wire_service_handle+0x154>
 80040a2:	6902      	ldr	r2, [r0, #16]
 80040a4:	42ba      	cmp	r2, r7
 80040a6:	d103      	bne.n	80040b0 <lamp_ui_wire_service_handle+0x154>
 80040a8:	6943      	ldr	r3, [r0, #20]
 80040aa:	9905      	ldr	r1, [sp, #20]
 80040ac:	428b      	cmp	r3, r1
 80040ae:	d00c      	beq.n	80040ca <lamp_ui_wire_service_handle+0x16e>
 80040b0:	2218      	movs	r2, #24
 80040b2:	2100      	movs	r1, #0
 80040b4:	0020      	movs	r0, r4
 80040b6:	f7fc f884 	bl	80001c2 <memset>
 80040ba:	9b05      	ldr	r3, [sp, #20]
 80040bc:	6027      	str	r7, [r4, #0]
 80040be:	6063      	str	r3, [r4, #4]
 80040c0:	9b02      	ldr	r3, [sp, #8]
 80040c2:	60a3      	str	r3, [r4, #8]
 80040c4:	2303      	movs	r3, #3
 80040c6:	7323      	strb	r3, [r4, #12]
 80040c8:	e7aa      	b.n	8004020 <lamp_ui_wire_service_handle+0xc4>
 80040ca:	9309      	str	r3, [sp, #36]	@ 0x24
 80040cc:	9b02      	ldr	r3, [sp, #8]
 80040ce:	9208      	str	r2, [sp, #32]
 80040d0:	930a      	str	r3, [sp, #40]	@ 0x28
 80040d2:	7d33      	ldrb	r3, [r6, #20]
 80040d4:	a908      	add	r1, sp, #32
 80040d6:	730b      	strb	r3, [r1, #12]
 80040d8:	9a06      	ldr	r2, [sp, #24]
 80040da:	ab0c      	add	r3, sp, #48	@ 0x30
 80040dc:	3008      	adds	r0, #8
 80040de:	f7ff fe8e 	bl	8003dfe <lamp_ui_dispatcher_handle>
 80040e2:	1e07      	subs	r7, r0, #0
 80040e4:	d100      	bne.n	80040e8 <lamp_ui_wire_service_handle+0x18c>
 80040e6:	e742      	b.n	8003f6e <lamp_ui_wire_service_handle+0x12>
 80040e8:	68b2      	ldr	r2, [r6, #8]
 80040ea:	68f3      	ldr	r3, [r6, #12]
 80040ec:	9202      	str	r2, [sp, #8]
 80040ee:	9303      	str	r3, [sp, #12]
 80040f0:	ab06      	add	r3, sp, #24
 80040f2:	7f1b      	ldrb	r3, [r3, #28]
 80040f4:	2218      	movs	r2, #24
 80040f6:	2100      	movs	r1, #0
 80040f8:	0020      	movs	r0, r4
 80040fa:	9e0c      	ldr	r6, [sp, #48]	@ 0x30
 80040fc:	9305      	str	r3, [sp, #20]
 80040fe:	f7fc f860 	bl	80001c2 <memset>
 8004102:	9a02      	ldr	r2, [sp, #8]
 8004104:	9b03      	ldr	r3, [sp, #12]
 8004106:	6022      	str	r2, [r4, #0]
 8004108:	6063      	str	r3, [r4, #4]
 800410a:	9b05      	ldr	r3, [sp, #20]
 800410c:	60a6      	str	r6, [r4, #8]
 800410e:	7323      	strb	r3, [r4, #12]
 8004110:	2e00      	cmp	r6, #0
 8004112:	d017      	beq.n	8004144 <lamp_ui_wire_service_handle+0x1e8>
 8004114:	002b      	movs	r3, r5
 8004116:	3330      	adds	r3, #48	@ 0x30
 8004118:	781b      	ldrb	r3, [r3, #0]
 800411a:	7363      	strb	r3, [r4, #13]
 800411c:	68a8      	ldr	r0, [r5, #8]
 800411e:	2800      	cmp	r0, #0
 8004120:	d010      	beq.n	8004144 <lamp_ui_wire_service_handle+0x1e8>
 8004122:	4b0e      	ldr	r3, [pc, #56]	@ (800415c <lamp_ui_wire_service_handle+0x200>)
 8004124:	5cc3      	ldrb	r3, [r0, r3]
 8004126:	2b00      	cmp	r3, #0
 8004128:	d00c      	beq.n	8004144 <lamp_ui_wire_service_handle+0x1e8>
 800412a:	2381      	movs	r3, #129	@ 0x81
 800412c:	009b      	lsls	r3, r3, #2
 800412e:	5cc3      	ldrb	r3, [r0, r3]
 8004130:	2b03      	cmp	r3, #3
 8004132:	d007      	beq.n	8004144 <lamp_ui_wire_service_handle+0x1e8>
 8004134:	2301      	movs	r3, #1
 8004136:	7ba2      	ldrb	r2, [r4, #14]
 8004138:	9906      	ldr	r1, [sp, #24]
 800413a:	4313      	orrs	r3, r2
 800413c:	73a3      	strb	r3, [r4, #14]
 800413e:	f7ff fac3 	bl	80036c8 <lg_remaining_ms>
 8004142:	6120      	str	r0, [r4, #16]
 8004144:	ab0c      	add	r3, sp, #48	@ 0x30
 8004146:	7b1a      	ldrb	r2, [r3, #12]
 8004148:	2a00      	cmp	r2, #0
 800414a:	d100      	bne.n	800414e <lamp_ui_wire_service_handle+0x1f2>
 800414c:	e70f      	b.n	8003f6e <lamp_ui_wire_service_handle+0x12>
 800414e:	2302      	movs	r3, #2
 8004150:	7ba1      	ldrb	r1, [r4, #14]
 8004152:	0017      	movs	r7, r2
 8004154:	430b      	orrs	r3, r1
 8004156:	73a3      	strb	r3, [r4, #14]
 8004158:	e709      	b.n	8003f6e <lamp_ui_wire_service_handle+0x12>
 800415a:	46c0      	nop			@ (mov r8, r8)
 800415c:	00000211 	.word	0x00000211

08004160 <command_oe_n>:
 8004160:	b570      	push	{r4, r5, r6, lr}
 8004162:	6843      	ldr	r3, [r0, #4]
 8004164:	0004      	movs	r4, r0
 8004166:	6800      	ldr	r0, [r0, #0]
 8004168:	000d      	movs	r5, r1
 800416a:	4798      	blx	r3
 800416c:	2800      	cmp	r0, #0
 800416e:	d001      	beq.n	8004174 <command_oe_n+0x14>
 8004170:	34ae      	adds	r4, #174	@ 0xae
 8004172:	7025      	strb	r5, [r4, #0]
 8004174:	bd70      	pop	{r4, r5, r6, pc}

08004176 <force_off>:
 8004176:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8004178:	0004      	movs	r4, r0
 800417a:	6843      	ldr	r3, [r0, #4]
 800417c:	000f      	movs	r7, r1
 800417e:	6800      	ldr	r0, [r0, #0]
 8004180:	2101      	movs	r1, #1
 8004182:	4798      	blx	r3
 8004184:	2100      	movs	r1, #0
 8004186:	0006      	movs	r6, r0
 8004188:	68a3      	ldr	r3, [r4, #8]
 800418a:	6820      	ldr	r0, [r4, #0]
 800418c:	4798      	blx	r3
 800418e:	0005      	movs	r5, r0
 8004190:	2e00      	cmp	r6, #0
 8004192:	d003      	beq.n	800419c <force_off+0x26>
 8004194:	0023      	movs	r3, r4
 8004196:	2201      	movs	r2, #1
 8004198:	33ae      	adds	r3, #174	@ 0xae
 800419a:	701a      	strb	r2, [r3, #0]
 800419c:	2d00      	cmp	r5, #0
 800419e:	d003      	beq.n	80041a8 <force_off+0x32>
 80041a0:	0023      	movs	r3, r4
 80041a2:	2200      	movs	r2, #0
 80041a4:	33af      	adds	r3, #175	@ 0xaf
 80041a6:	701a      	strb	r2, [r3, #0]
 80041a8:	0023      	movs	r3, r4
 80041aa:	2100      	movs	r1, #0
 80041ac:	0020      	movs	r0, r4
 80041ae:	33b0      	adds	r3, #176	@ 0xb0
 80041b0:	8019      	strh	r1, [r3, #0]
 80041b2:	227a      	movs	r2, #122	@ 0x7a
 80041b4:	8621      	strh	r1, [r4, #48]	@ 0x30
 80041b6:	3032      	adds	r0, #50	@ 0x32
 80041b8:	f7fc f803 	bl	80001c2 <memset>
 80041bc:	2301      	movs	r3, #1
 80041be:	2f00      	cmp	r7, #0
 80041c0:	d10c      	bne.n	80041dc <force_off+0x66>
 80041c2:	42be      	cmp	r6, r7
 80041c4:	d105      	bne.n	80041d2 <force_off+0x5c>
 80041c6:	34ad      	adds	r4, #173	@ 0xad
 80041c8:	7023      	strb	r3, [r4, #0]
 80041ca:	2500      	movs	r5, #0
 80041cc:	2001      	movs	r0, #1
 80041ce:	4028      	ands	r0, r5
 80041d0:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 80041d2:	2d00      	cmp	r5, #0
 80041d4:	d1fa      	bne.n	80041cc <force_off+0x56>
 80041d6:	34ad      	adds	r4, #173	@ 0xad
 80041d8:	7023      	strb	r3, [r4, #0]
 80041da:	e7f7      	b.n	80041cc <force_off+0x56>
 80041dc:	34ad      	adds	r4, #173	@ 0xad
 80041de:	7023      	strb	r3, [r4, #0]
 80041e0:	2e00      	cmp	r6, #0
 80041e2:	d0f2      	beq.n	80041ca <force_off+0x54>
 80041e4:	e7f2      	b.n	80041cc <force_off+0x56>

080041e6 <latch_fault>:
 80041e6:	b510      	push	{r4, lr}
 80041e8:	2900      	cmp	r1, #0
 80041ea:	d107      	bne.n	80041fc <latch_fault+0x16>
 80041ec:	2200      	movs	r2, #0
 80041ee:	2300      	movs	r3, #0
 80041f0:	2101      	movs	r1, #1
 80041f2:	6202      	str	r2, [r0, #32]
 80041f4:	6243      	str	r3, [r0, #36]	@ 0x24
 80041f6:	f7ff ffbe 	bl	8004176 <force_off>
 80041fa:	bd10      	pop	{r4, pc}
 80041fc:	2384      	movs	r3, #132	@ 0x84
 80041fe:	009b      	lsls	r3, r3, #2
 8004200:	5ccb      	ldrb	r3, [r1, r3]
 8004202:	2b00      	cmp	r3, #0
 8004204:	d0f2      	beq.n	80041ec <latch_fault+0x6>
 8004206:	2386      	movs	r3, #134	@ 0x86
 8004208:	009b      	lsls	r3, r3, #2
 800420a:	18c9      	adds	r1, r1, r3
 800420c:	c90c      	ldmia	r1!, {r2, r3}
 800420e:	e7ef      	b.n	80041f0 <latch_fault+0xa>

08004210 <lg_output_init>:
 8004210:	b570      	push	{r4, r5, r6, lr}
 8004212:	0005      	movs	r5, r0
 8004214:	000c      	movs	r4, r1
 8004216:	0016      	movs	r6, r2
 8004218:	2800      	cmp	r0, #0
 800421a:	d101      	bne.n	8004220 <lg_output_init+0x10>
 800421c:	2000      	movs	r0, #0
 800421e:	bd70      	pop	{r4, r5, r6, pc}
 8004220:	22b8      	movs	r2, #184	@ 0xb8
 8004222:	2100      	movs	r1, #0
 8004224:	f7fb ffcd 	bl	80001c2 <memset>
 8004228:	2c00      	cmp	r4, #0
 800422a:	d0f7      	beq.n	800421c <lg_output_init+0xc>
 800422c:	6863      	ldr	r3, [r4, #4]
 800422e:	2b00      	cmp	r3, #0
 8004230:	d0f4      	beq.n	800421c <lg_output_init+0xc>
 8004232:	68a3      	ldr	r3, [r4, #8]
 8004234:	2b00      	cmp	r3, #0
 8004236:	d0f1      	beq.n	800421c <lg_output_init+0xc>
 8004238:	68e3      	ldr	r3, [r4, #12]
 800423a:	2b00      	cmp	r3, #0
 800423c:	d0ee      	beq.n	800421c <lg_output_init+0xc>
 800423e:	6923      	ldr	r3, [r4, #16]
 8004240:	2b00      	cmp	r3, #0
 8004242:	d0eb      	beq.n	800421c <lg_output_init+0xc>
 8004244:	4a08      	ldr	r2, [pc, #32]	@ (8004268 <lg_output_init+0x58>)
 8004246:	1e73      	subs	r3, r6, #1
 8004248:	4293      	cmp	r3, r2
 800424a:	d8e7      	bhi.n	800421c <lg_output_init+0xc>
 800424c:	002b      	movs	r3, r5
 800424e:	cc07      	ldmia	r4!, {r0, r1, r2}
 8004250:	c307      	stmia	r3!, {r0, r1, r2}
 8004252:	cc06      	ldmia	r4!, {r1, r2}
 8004254:	c306      	stmia	r3!, {r1, r2}
 8004256:	2201      	movs	r2, #1
 8004258:	3398      	adds	r3, #152	@ 0x98
 800425a:	616e      	str	r6, [r5, #20]
 800425c:	2100      	movs	r1, #0
 800425e:	0028      	movs	r0, r5
 8004260:	701a      	strb	r2, [r3, #0]
 8004262:	f7ff ff88 	bl	8004176 <force_off>
 8004266:	e7da      	b.n	800421e <lg_output_init+0xe>
 8004268:	7ffffffd 	.word	0x7ffffffd

0800426c <lg_output_sync>:
 800426c:	b5f0      	push	{r4, r5, r6, r7, lr}
 800426e:	b08b      	sub	sp, #44	@ 0x2c
 8004270:	0004      	movs	r4, r0
 8004272:	000d      	movs	r5, r1
 8004274:	9201      	str	r2, [sp, #4]
 8004276:	2800      	cmp	r0, #0
 8004278:	d00d      	beq.n	8004296 <lg_output_sync+0x2a>
 800427a:	0003      	movs	r3, r0
 800427c:	33ac      	adds	r3, #172	@ 0xac
 800427e:	781b      	ldrb	r3, [r3, #0]
 8004280:	2b00      	cmp	r3, #0
 8004282:	d008      	beq.n	8004296 <lg_output_sync+0x2a>
 8004284:	0003      	movs	r3, r0
 8004286:	33ad      	adds	r3, #173	@ 0xad
 8004288:	781b      	ldrb	r3, [r3, #0]
 800428a:	2b00      	cmp	r3, #0
 800428c:	d007      	beq.n	800429e <lg_output_sync+0x32>
 800428e:	2101      	movs	r1, #1
 8004290:	0020      	movs	r0, r4
 8004292:	f7ff ff70 	bl	8004176 <force_off>
 8004296:	2303      	movs	r3, #3
 8004298:	0018      	movs	r0, r3
 800429a:	b00b      	add	sp, #44	@ 0x2c
 800429c:	bdf0      	pop	{r4, r5, r6, r7, pc}
 800429e:	4299      	cmp	r1, r3
 80042a0:	d03c      	beq.n	800431c <lg_output_sync+0xb0>
 80042a2:	2384      	movs	r3, #132	@ 0x84
 80042a4:	009b      	lsls	r3, r3, #2
 80042a6:	5ccb      	ldrb	r3, [r1, r3]
 80042a8:	2b00      	cmp	r3, #0
 80042aa:	d037      	beq.n	800431c <lg_output_sync+0xb0>
 80042ac:	2386      	movs	r3, #134	@ 0x86
 80042ae:	009b      	lsls	r3, r3, #2
 80042b0:	18cb      	adds	r3, r1, r3
 80042b2:	cb0c      	ldmia	r3, {r2, r3}
 80042b4:	0011      	movs	r1, r2
 80042b6:	4319      	orrs	r1, r3
 80042b8:	d008      	beq.n	80042cc <lg_output_sync+0x60>
 80042ba:	0001      	movs	r1, r0
 80042bc:	31b2      	adds	r1, #178	@ 0xb2
 80042be:	7808      	ldrb	r0, [r1, #0]
 80042c0:	2800      	cmp	r0, #0
 80042c2:	d13e      	bne.n	8004342 <lg_output_sync+0xd6>
 80042c4:	62e3      	str	r3, [r4, #44]	@ 0x2c
 80042c6:	2301      	movs	r3, #1
 80042c8:	62a2      	str	r2, [r4, #40]	@ 0x28
 80042ca:	700b      	strb	r3, [r1, #0]
 80042cc:	4b76      	ldr	r3, [pc, #472]	@ (80044a8 <lg_output_sync+0x23c>)
 80042ce:	5ceb      	ldrb	r3, [r5, r3]
 80042d0:	2b00      	cmp	r3, #0
 80042d2:	d023      	beq.n	800431c <lg_output_sync+0xb0>
 80042d4:	4b75      	ldr	r3, [pc, #468]	@ (80044ac <lg_output_sync+0x240>)
 80042d6:	5ceb      	ldrb	r3, [r5, r3]
 80042d8:	2b00      	cmp	r3, #0
 80042da:	d01f      	beq.n	800431c <lg_output_sync+0xb0>
 80042dc:	2381      	movs	r3, #129	@ 0x81
 80042de:	009b      	lsls	r3, r3, #2
 80042e0:	5ceb      	ldrb	r3, [r5, r3]
 80042e2:	3b01      	subs	r3, #1
 80042e4:	b2db      	uxtb	r3, r3
 80042e6:	2b01      	cmp	r3, #1
 80042e8:	d818      	bhi.n	800431c <lg_output_sync+0xb0>
 80042ea:	4b71      	ldr	r3, [pc, #452]	@ (80044b0 <lg_output_sync+0x244>)
 80042ec:	5ceb      	ldrb	r3, [r5, r3]
 80042ee:	2b00      	cmp	r3, #0
 80042f0:	d014      	beq.n	800431c <lg_output_sync+0xb0>
 80042f2:	4b70      	ldr	r3, [pc, #448]	@ (80044b4 <lg_output_sync+0x248>)
 80042f4:	5ceb      	ldrb	r3, [r5, r3]
 80042f6:	2b00      	cmp	r3, #0
 80042f8:	d010      	beq.n	800431c <lg_output_sync+0xb0>
 80042fa:	4b6f      	ldr	r3, [pc, #444]	@ (80044b8 <lg_output_sync+0x24c>)
 80042fc:	5ceb      	ldrb	r3, [r5, r3]
 80042fe:	2b00      	cmp	r3, #0
 8004300:	d00c      	beq.n	800431c <lg_output_sync+0xb0>
 8004302:	4b6e      	ldr	r3, [pc, #440]	@ (80044bc <lg_output_sync+0x250>)
 8004304:	5ceb      	ldrb	r3, [r5, r3]
 8004306:	2b00      	cmp	r3, #0
 8004308:	d008      	beq.n	800431c <lg_output_sync+0xb0>
 800430a:	2382      	movs	r3, #130	@ 0x82
 800430c:	009b      	lsls	r3, r3, #2
 800430e:	5ceb      	ldrb	r3, [r5, r3]
 8004310:	2b00      	cmp	r3, #0
 8004312:	d003      	beq.n	800431c <lg_output_sync+0xb0>
 8004314:	882a      	ldrh	r2, [r5, #0]
 8004316:	1e53      	subs	r3, r2, #1
 8004318:	2b79      	cmp	r3, #121	@ 0x79
 800431a:	d91b      	bls.n	8004354 <lg_output_sync+0xe8>
 800431c:	2100      	movs	r1, #0
 800431e:	0020      	movs	r0, r4
 8004320:	f7ff ff29 	bl	8004176 <force_off>
 8004324:	2300      	movs	r3, #0
 8004326:	4298      	cmp	r0, r3
 8004328:	d1b6      	bne.n	8004298 <lg_output_sync+0x2c>
 800432a:	2d00      	cmp	r5, #0
 800432c:	d004      	beq.n	8004338 <lg_output_sync+0xcc>
 800432e:	2384      	movs	r3, #132	@ 0x84
 8004330:	009b      	lsls	r3, r3, #2
 8004332:	5ceb      	ldrb	r3, [r5, r3]
 8004334:	2b00      	cmp	r3, #0
 8004336:	d11d      	bne.n	8004374 <lg_output_sync+0x108>
 8004338:	2200      	movs	r2, #0
 800433a:	2300      	movs	r3, #0
 800433c:	6222      	str	r2, [r4, #32]
 800433e:	6263      	str	r3, [r4, #36]	@ 0x24
 8004340:	e7a9      	b.n	8004296 <lg_output_sync+0x2a>
 8004342:	6aa0      	ldr	r0, [r4, #40]	@ 0x28
 8004344:	6ae1      	ldr	r1, [r4, #44]	@ 0x2c
 8004346:	4282      	cmp	r2, r0
 8004348:	d101      	bne.n	800434e <lg_output_sync+0xe2>
 800434a:	428b      	cmp	r3, r1
 800434c:	d0be      	beq.n	80042cc <lg_output_sync+0x60>
 800434e:	6220      	str	r0, [r4, #32]
 8004350:	6261      	str	r1, [r4, #36]	@ 0x24
 8004352:	e79c      	b.n	800428e <lg_output_sync+0x22>
 8004354:	0023      	movs	r3, r4
 8004356:	33b1      	adds	r3, #177	@ 0xb1
 8004358:	781b      	ldrb	r3, [r3, #0]
 800435a:	2b00      	cmp	r3, #0
 800435c:	d10f      	bne.n	800437e <lg_output_sync+0x112>
 800435e:	2101      	movs	r1, #1
 8004360:	0020      	movs	r0, r4
 8004362:	f7ff fefd 	bl	8004160 <command_oe_n>
 8004366:	2800      	cmp	r0, #0
 8004368:	d13c      	bne.n	80043e4 <lg_output_sync+0x178>
 800436a:	0029      	movs	r1, r5
 800436c:	0020      	movs	r0, r4
 800436e:	f7ff ff3a 	bl	80041e6 <latch_fault>
 8004372:	e790      	b.n	8004296 <lg_output_sync+0x2a>
 8004374:	2386      	movs	r3, #134	@ 0x86
 8004376:	009b      	lsls	r3, r3, #2
 8004378:	18ed      	adds	r5, r5, r3
 800437a:	cd0c      	ldmia	r5!, {r2, r3}
 800437c:	e7de      	b.n	800433c <lg_output_sync+0xd0>
 800437e:	8e23      	ldrh	r3, [r4, #48]	@ 0x30
 8004380:	4293      	cmp	r3, r2
 8004382:	d1ec      	bne.n	800435e <lg_output_sync+0xf2>
 8004384:	2394      	movs	r3, #148	@ 0x94
 8004386:	0020      	movs	r0, r4
 8004388:	009b      	lsls	r3, r3, #2
 800438a:	18e9      	adds	r1, r5, r3
 800438c:	3032      	adds	r0, #50	@ 0x32
 800438e:	f7fb ff20 	bl	80001d2 <memcmp>
 8004392:	2800      	cmp	r0, #0
 8004394:	d1e3      	bne.n	800435e <lg_output_sync+0xf2>
 8004396:	0026      	movs	r6, r4
 8004398:	36af      	adds	r6, #175	@ 0xaf
 800439a:	7833      	ldrb	r3, [r6, #0]
 800439c:	2b00      	cmp	r3, #0
 800439e:	d10c      	bne.n	80043ba <lg_output_sync+0x14e>
 80043a0:	2101      	movs	r1, #1
 80043a2:	68a3      	ldr	r3, [r4, #8]
 80043a4:	6820      	ldr	r0, [r4, #0]
 80043a6:	4798      	blx	r3
 80043a8:	2800      	cmp	r0, #0
 80043aa:	d0de      	beq.n	800436a <lg_output_sync+0xfe>
 80043ac:	0022      	movs	r2, r4
 80043ae:	2301      	movs	r3, #1
 80043b0:	32b0      	adds	r2, #176	@ 0xb0
 80043b2:	7033      	strb	r3, [r6, #0]
 80043b4:	7013      	strb	r3, [r2, #0]
 80043b6:	9b01      	ldr	r3, [sp, #4]
 80043b8:	61a3      	str	r3, [r4, #24]
 80043ba:	6923      	ldr	r3, [r4, #16]
 80043bc:	6820      	ldr	r0, [r4, #0]
 80043be:	4798      	blx	r3
 80043c0:	0023      	movs	r3, r4
 80043c2:	33ae      	adds	r3, #174	@ 0xae
 80043c4:	781b      	ldrb	r3, [r3, #0]
 80043c6:	2800      	cmp	r0, #0
 80043c8:	d052      	beq.n	8004470 <lg_output_sync+0x204>
 80043ca:	2b00      	cmp	r3, #0
 80043cc:	d008      	beq.n	80043e0 <lg_output_sync+0x174>
 80043ce:	2100      	movs	r1, #0
 80043d0:	0020      	movs	r0, r4
 80043d2:	f7ff fec5 	bl	8004160 <command_oe_n>
 80043d6:	2800      	cmp	r0, #0
 80043d8:	d0c7      	beq.n	800436a <lg_output_sync+0xfe>
 80043da:	2300      	movs	r3, #0
 80043dc:	34b0      	adds	r4, #176	@ 0xb0
 80043de:	7023      	strb	r3, [r4, #0]
 80043e0:	2302      	movs	r3, #2
 80043e2:	e759      	b.n	8004298 <lg_output_sync+0x2c>
 80043e4:	882e      	ldrh	r6, [r5, #0]
 80043e6:	2118      	movs	r1, #24
 80043e8:	0030      	movs	r0, r6
 80043ea:	3017      	adds	r0, #23
 80043ec:	f001 f980 	bl	80056f0 <__udivsi3>
 80043f0:	b2c3      	uxtb	r3, r0
 80043f2:	9302      	str	r3, [sp, #8]
 80043f4:	2394      	movs	r3, #148	@ 0x94
 80043f6:	2700      	movs	r7, #0
 80043f8:	009b      	lsls	r3, r3, #2
 80043fa:	18eb      	adds	r3, r5, r3
 80043fc:	9300      	str	r3, [sp, #0]
 80043fe:	b2fb      	uxtb	r3, r7
 8004400:	9303      	str	r3, [sp, #12]
 8004402:	9b02      	ldr	r3, [sp, #8]
 8004404:	b2fa      	uxtb	r2, r7
 8004406:	4293      	cmp	r3, r2
 8004408:	d813      	bhi.n	8004432 <lg_output_sync+0x1c6>
 800440a:	0027      	movs	r7, r4
 800440c:	3732      	adds	r7, #50	@ 0x32
 800440e:	227a      	movs	r2, #122	@ 0x7a
 8004410:	2100      	movs	r1, #0
 8004412:	0038      	movs	r0, r7
 8004414:	f7fb fed5 	bl	80001c2 <memset>
 8004418:	2394      	movs	r3, #148	@ 0x94
 800441a:	009b      	lsls	r3, r3, #2
 800441c:	0032      	movs	r2, r6
 800441e:	18e9      	adds	r1, r5, r3
 8004420:	0038      	movs	r0, r7
 8004422:	f7fb fec5 	bl	80001b0 <memcpy>
 8004426:	0023      	movs	r3, r4
 8004428:	2201      	movs	r2, #1
 800442a:	33b1      	adds	r3, #177	@ 0xb1
 800442c:	8626      	strh	r6, [r4, #48]	@ 0x30
 800442e:	701a      	strb	r2, [r3, #0]
 8004430:	e7b1      	b.n	8004396 <lg_output_sync+0x12a>
 8004432:	2218      	movs	r2, #24
 8004434:	2100      	movs	r1, #0
 8004436:	a804      	add	r0, sp, #16
 8004438:	f7fb fec3 	bl	80001c2 <memset>
 800443c:	2318      	movs	r3, #24
 800443e:	425b      	negs	r3, r3
 8004440:	437b      	muls	r3, r7
 8004442:	18f3      	adds	r3, r6, r3
 8004444:	1c1a      	adds	r2, r3, #0
 8004446:	b29b      	uxth	r3, r3
 8004448:	2b18      	cmp	r3, #24
 800444a:	d900      	bls.n	800444e <lg_output_sync+0x1e2>
 800444c:	2218      	movs	r2, #24
 800444e:	9900      	ldr	r1, [sp, #0]
 8004450:	b292      	uxth	r2, r2
 8004452:	a804      	add	r0, sp, #16
 8004454:	f7fb feac 	bl	80001b0 <memcpy>
 8004458:	68e3      	ldr	r3, [r4, #12]
 800445a:	b2f9      	uxtb	r1, r7
 800445c:	6820      	ldr	r0, [r4, #0]
 800445e:	aa04      	add	r2, sp, #16
 8004460:	4798      	blx	r3
 8004462:	9b00      	ldr	r3, [sp, #0]
 8004464:	3701      	adds	r7, #1
 8004466:	3318      	adds	r3, #24
 8004468:	9300      	str	r3, [sp, #0]
 800446a:	2800      	cmp	r0, #0
 800446c:	d1c7      	bne.n	80043fe <lg_output_sync+0x192>
 800446e:	e77c      	b.n	800436a <lg_output_sync+0xfe>
 8004470:	4283      	cmp	r3, r0
 8004472:	d106      	bne.n	8004482 <lg_output_sync+0x216>
 8004474:	2101      	movs	r1, #1
 8004476:	0020      	movs	r0, r4
 8004478:	f7ff fe72 	bl	8004160 <command_oe_n>
 800447c:	2800      	cmp	r0, #0
 800447e:	d100      	bne.n	8004482 <lg_output_sync+0x216>
 8004480:	e773      	b.n	800436a <lg_output_sync+0xfe>
 8004482:	0023      	movs	r3, r4
 8004484:	33b0      	adds	r3, #176	@ 0xb0
 8004486:	781a      	ldrb	r2, [r3, #0]
 8004488:	2a00      	cmp	r2, #0
 800448a:	d103      	bne.n	8004494 <lg_output_sync+0x228>
 800448c:	3201      	adds	r2, #1
 800448e:	701a      	strb	r2, [r3, #0]
 8004490:	9b01      	ldr	r3, [sp, #4]
 8004492:	61a3      	str	r3, [r4, #24]
 8004494:	9a01      	ldr	r2, [sp, #4]
 8004496:	69a3      	ldr	r3, [r4, #24]
 8004498:	1ad3      	subs	r3, r2, r3
 800449a:	6962      	ldr	r2, [r4, #20]
 800449c:	4293      	cmp	r3, r2
 800449e:	d300      	bcc.n	80044a2 <lg_output_sync+0x236>
 80044a0:	e763      	b.n	800436a <lg_output_sync+0xfe>
 80044a2:	2301      	movs	r3, #1
 80044a4:	e6f8      	b.n	8004298 <lg_output_sync+0x2c>
 80044a6:	46c0      	nop			@ (mov r8, r8)
 80044a8:	00000211 	.word	0x00000211
 80044ac:	00000212 	.word	0x00000212
 80044b0:	0000020a 	.word	0x0000020a
 80044b4:	00000205 	.word	0x00000205
 80044b8:	00000206 	.word	0x00000206
 80044bc:	00000207 	.word	0x00000207

080044c0 <lg_output_recover>:
 80044c0:	b570      	push	{r4, r5, r6, lr}
 80044c2:	1e04      	subs	r4, r0, #0
 80044c4:	d101      	bne.n	80044ca <lg_output_recover+0xa>
 80044c6:	2000      	movs	r0, #0
 80044c8:	bd70      	pop	{r4, r5, r6, pc}
 80044ca:	0003      	movs	r3, r0
 80044cc:	33ac      	adds	r3, #172	@ 0xac
 80044ce:	7818      	ldrb	r0, [r3, #0]
 80044d0:	2800      	cmp	r0, #0
 80044d2:	d0f9      	beq.n	80044c8 <lg_output_recover+0x8>
 80044d4:	2900      	cmp	r1, #0
 80044d6:	d0f6      	beq.n	80044c6 <lg_output_recover+0x6>
 80044d8:	2386      	movs	r3, #134	@ 0x86
 80044da:	009b      	lsls	r3, r3, #2
 80044dc:	18cd      	adds	r5, r1, r3
 80044de:	682a      	ldr	r2, [r5, #0]
 80044e0:	686b      	ldr	r3, [r5, #4]
 80044e2:	0010      	movs	r0, r2
 80044e4:	4318      	orrs	r0, r3
 80044e6:	d0ee      	beq.n	80044c6 <lg_output_recover+0x6>
 80044e8:	4811      	ldr	r0, [pc, #68]	@ (8004530 <lg_output_recover+0x70>)
 80044ea:	5c08      	ldrb	r0, [r1, r0]
 80044ec:	2800      	cmp	r0, #0
 80044ee:	d1ea      	bne.n	80044c6 <lg_output_recover+0x6>
 80044f0:	2681      	movs	r6, #129	@ 0x81
 80044f2:	00b6      	lsls	r6, r6, #2
 80044f4:	5d89      	ldrb	r1, [r1, r6]
 80044f6:	4281      	cmp	r1, r0
 80044f8:	d1e6      	bne.n	80044c8 <lg_output_recover+0x8>
 80044fa:	6a21      	ldr	r1, [r4, #32]
 80044fc:	4291      	cmp	r1, r2
 80044fe:	d102      	bne.n	8004506 <lg_output_recover+0x46>
 8004500:	6a62      	ldr	r2, [r4, #36]	@ 0x24
 8004502:	429a      	cmp	r2, r3
 8004504:	d0e0      	beq.n	80044c8 <lg_output_recover+0x8>
 8004506:	2100      	movs	r1, #0
 8004508:	0020      	movs	r0, r4
 800450a:	f7ff fe34 	bl	8004176 <force_off>
 800450e:	2800      	cmp	r0, #0
 8004510:	d0da      	beq.n	80044c8 <lg_output_recover+0x8>
 8004512:	0023      	movs	r3, r4
 8004514:	2200      	movs	r2, #0
 8004516:	33ad      	adds	r3, #173	@ 0xad
 8004518:	701a      	strb	r2, [r3, #0]
 800451a:	2200      	movs	r2, #0
 800451c:	2300      	movs	r3, #0
 800451e:	6222      	str	r2, [r4, #32]
 8004520:	6263      	str	r3, [r4, #36]	@ 0x24
 8004522:	cd0c      	ldmia	r5!, {r2, r3}
 8004524:	62a2      	str	r2, [r4, #40]	@ 0x28
 8004526:	62e3      	str	r3, [r4, #44]	@ 0x2c
 8004528:	2301      	movs	r3, #1
 800452a:	34b2      	adds	r4, #178	@ 0xb2
 800452c:	7023      	strb	r3, [r4, #0]
 800452e:	e7cb      	b.n	80044c8 <lg_output_recover+0x8>
 8004530:	00000211 	.word	0x00000211

08004534 <hardware_off>:
 8004534:	b510      	push	{r4, lr}
 8004536:	6883      	ldr	r3, [r0, #8]
 8004538:	0004      	movs	r4, r0
 800453a:	6800      	ldr	r0, [r0, #0]
 800453c:	4798      	blx	r3
 800453e:	2800      	cmp	r0, #0
 8004540:	d002      	beq.n	8004548 <hardware_off+0x14>
 8004542:	68e3      	ldr	r3, [r4, #12]
 8004544:	6820      	ldr	r0, [r4, #0]
 8004546:	4798      	blx	r3
 8004548:	bd10      	pop	{r4, pc}

0800454a <write_register>:
 800454a:	b537      	push	{r0, r1, r2, r4, r5, lr}
 800454c:	0004      	movs	r4, r0
 800454e:	0010      	movs	r0, r2
 8004550:	aa01      	add	r2, sp, #4
 8004552:	7010      	strb	r0, [r2, #0]
 8004554:	7053      	strb	r3, [r2, #1]
 8004556:	7d23      	ldrb	r3, [r4, #20]
 8004558:	2000      	movs	r0, #0
 800455a:	428b      	cmp	r3, r1
 800455c:	d905      	bls.n	800456a <write_register+0x20>
 800455e:	1861      	adds	r1, r4, r1
 8004560:	2302      	movs	r3, #2
 8004562:	7d49      	ldrb	r1, [r1, #21]
 8004564:	6865      	ldr	r5, [r4, #4]
 8004566:	6820      	ldr	r0, [r4, #0]
 8004568:	47a8      	blx	r5
 800456a:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}

0800456c <write_all_registers.constprop.0>:
 800456c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 800456e:	0006      	movs	r6, r0
 8004570:	0017      	movs	r7, r2
 8004572:	2402      	movs	r4, #2
 8004574:	2501      	movs	r5, #1
 8004576:	9101      	str	r1, [sp, #4]
 8004578:	0022      	movs	r2, r4
 800457a:	003b      	movs	r3, r7
 800457c:	0030      	movs	r0, r6
 800457e:	9901      	ldr	r1, [sp, #4]
 8004580:	f7ff ffe3 	bl	800454a <write_register>
 8004584:	3401      	adds	r4, #1
 8004586:	b2e4      	uxtb	r4, r4
 8004588:	4005      	ands	r5, r0
 800458a:	2c08      	cmp	r4, #8
 800458c:	d1f4      	bne.n	8004578 <write_all_registers.constprop.0+0xc>
 800458e:	0028      	movs	r0, r5
 8004590:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}

08004592 <latch_fault_and_force_off>:
 8004592:	b570      	push	{r4, r5, r6, lr}
 8004594:	1e04      	subs	r4, r0, #0
 8004596:	d00c      	beq.n	80045b2 <latch_fault_and_force_off+0x20>
 8004598:	2380      	movs	r3, #128	@ 0x80
 800459a:	005b      	lsls	r3, r3, #1
 800459c:	8383      	strh	r3, [r0, #28]
 800459e:	6903      	ldr	r3, [r0, #16]
 80045a0:	6800      	ldr	r0, [r0, #0]
 80045a2:	4798      	blx	r3
 80045a4:	2800      	cmp	r0, #0
 80045a6:	d004      	beq.n	80045b2 <latch_fault_and_force_off+0x20>
 80045a8:	0020      	movs	r0, r4
 80045aa:	f7ff ffc3 	bl	8004534 <hardware_off>
 80045ae:	2800      	cmp	r0, #0
 80045b0:	d123      	bne.n	80045fa <latch_fault_and_force_off+0x68>
 80045b2:	bd70      	pop	{r4, r5, r6, pc}
 80045b4:	2300      	movs	r3, #0
 80045b6:	0029      	movs	r1, r5
 80045b8:	001a      	movs	r2, r3
 80045ba:	0020      	movs	r0, r4
 80045bc:	f7ff ffc5 	bl	800454a <write_register>
 80045c0:	0029      	movs	r1, r5
 80045c2:	2200      	movs	r2, #0
 80045c4:	0020      	movs	r0, r4
 80045c6:	f7ff ffd1 	bl	800456c <write_all_registers.constprop.0>
 80045ca:	0029      	movs	r1, r5
 80045cc:	2300      	movs	r3, #0
 80045ce:	223f      	movs	r2, #63	@ 0x3f
 80045d0:	0020      	movs	r0, r4
 80045d2:	f7ff ffba 	bl	800454a <write_register>
 80045d6:	0029      	movs	r1, r5
 80045d8:	2300      	movs	r3, #0
 80045da:	2240      	movs	r2, #64	@ 0x40
 80045dc:	0020      	movs	r0, r4
 80045de:	f7ff ffb4 	bl	800454a <write_register>
 80045e2:	0029      	movs	r1, r5
 80045e4:	2300      	movs	r3, #0
 80045e6:	2201      	movs	r2, #1
 80045e8:	0020      	movs	r0, r4
 80045ea:	f7ff ffae 	bl	800454a <write_register>
 80045ee:	3501      	adds	r5, #1
 80045f0:	b2ed      	uxtb	r5, r5
 80045f2:	7d23      	ldrb	r3, [r4, #20]
 80045f4:	42ab      	cmp	r3, r5
 80045f6:	d8dd      	bhi.n	80045b4 <latch_fault_and_force_off+0x22>
 80045f8:	e7db      	b.n	80045b2 <latch_fault_and_force_off+0x20>
 80045fa:	2500      	movs	r5, #0
 80045fc:	e7f9      	b.n	80045f2 <latch_fault_and_force_off+0x60>

080045fe <pca9956b_init>:
 80045fe:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8004600:	0004      	movs	r4, r0
 8004602:	000d      	movs	r5, r1
 8004604:	0016      	movs	r6, r2
 8004606:	001f      	movs	r7, r3
 8004608:	2800      	cmp	r0, #0
 800460a:	d041      	beq.n	8004690 <pca9956b_init+0x92>
 800460c:	2220      	movs	r2, #32
 800460e:	2100      	movs	r1, #0
 8004610:	f7fb fdd7 	bl	80001c2 <memset>
 8004614:	2d00      	cmp	r5, #0
 8004616:	d03b      	beq.n	8004690 <pca9956b_init+0x92>
 8004618:	686b      	ldr	r3, [r5, #4]
 800461a:	2b00      	cmp	r3, #0
 800461c:	d038      	beq.n	8004690 <pca9956b_init+0x92>
 800461e:	68ab      	ldr	r3, [r5, #8]
 8004620:	2b00      	cmp	r3, #0
 8004622:	d035      	beq.n	8004690 <pca9956b_init+0x92>
 8004624:	68eb      	ldr	r3, [r5, #12]
 8004626:	2b00      	cmp	r3, #0
 8004628:	d032      	beq.n	8004690 <pca9956b_init+0x92>
 800462a:	692b      	ldr	r3, [r5, #16]
 800462c:	2b00      	cmp	r3, #0
 800462e:	d02f      	beq.n	8004690 <pca9956b_init+0x92>
 8004630:	2e00      	cmp	r6, #0
 8004632:	d02d      	beq.n	8004690 <pca9956b_init+0x92>
 8004634:	1e7b      	subs	r3, r7, #1
 8004636:	2b05      	cmp	r3, #5
 8004638:	d82a      	bhi.n	8004690 <pca9956b_init+0x92>
 800463a:	19f3      	adds	r3, r6, r7
 800463c:	9301      	str	r3, [sp, #4]
 800463e:	0033      	movs	r3, r6
 8004640:	7819      	ldrb	r1, [r3, #0]
 8004642:	000a      	movs	r2, r1
 8004644:	3a08      	subs	r2, #8
 8004646:	2a6f      	cmp	r2, #111	@ 0x6f
 8004648:	d822      	bhi.n	8004690 <pca9956b_init+0x92>
 800464a:	0032      	movs	r2, r6
 800464c:	4293      	cmp	r3, r2
 800464e:	d11a      	bne.n	8004686 <pca9956b_init+0x88>
 8004650:	9a01      	ldr	r2, [sp, #4]
 8004652:	3301      	adds	r3, #1
 8004654:	429a      	cmp	r2, r3
 8004656:	d1f3      	bne.n	8004640 <pca9956b_init+0x42>
 8004658:	0023      	movs	r3, r4
 800465a:	cd07      	ldmia	r5!, {r0, r1, r2}
 800465c:	c307      	stmia	r3!, {r0, r1, r2}
 800465e:	0020      	movs	r0, r4
 8004660:	cd06      	ldmia	r5!, {r1, r2}
 8004662:	c306      	stmia	r3!, {r1, r2}
 8004664:	3015      	adds	r0, #21
 8004666:	0031      	movs	r1, r6
 8004668:	003a      	movs	r2, r7
 800466a:	7527      	strb	r7, [r4, #20]
 800466c:	f7fb fda0 	bl	80001b0 <memcpy>
 8004670:	0020      	movs	r0, r4
 8004672:	f7ff ff5f 	bl	8004534 <hardware_off>
 8004676:	2500      	movs	r5, #0
 8004678:	0006      	movs	r6, r0
 800467a:	42a8      	cmp	r0, r5
 800467c:	d143      	bne.n	8004706 <pca9956b_init+0x108>
 800467e:	0020      	movs	r0, r4
 8004680:	f7ff ff87 	bl	8004592 <latch_fault_and_force_off>
 8004684:	e004      	b.n	8004690 <pca9956b_init+0x92>
 8004686:	3201      	adds	r2, #1
 8004688:	1e50      	subs	r0, r2, #1
 800468a:	7800      	ldrb	r0, [r0, #0]
 800468c:	4288      	cmp	r0, r1
 800468e:	d1dd      	bne.n	800464c <pca9956b_init+0x4e>
 8004690:	2600      	movs	r6, #0
 8004692:	0030      	movs	r0, r6
 8004694:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8004696:	2300      	movs	r3, #0
 8004698:	0029      	movs	r1, r5
 800469a:	001a      	movs	r2, r3
 800469c:	0020      	movs	r0, r4
 800469e:	f7ff ff54 	bl	800454a <write_register>
 80046a2:	2800      	cmp	r0, #0
 80046a4:	d0eb      	beq.n	800467e <pca9956b_init+0x80>
 80046a6:	2300      	movs	r3, #0
 80046a8:	2201      	movs	r2, #1
 80046aa:	0029      	movs	r1, r5
 80046ac:	0020      	movs	r0, r4
 80046ae:	f7ff ff4c 	bl	800454a <write_register>
 80046b2:	2800      	cmp	r0, #0
 80046b4:	d0e3      	beq.n	800467e <pca9956b_init+0x80>
 80046b6:	2200      	movs	r2, #0
 80046b8:	0029      	movs	r1, r5
 80046ba:	0020      	movs	r0, r4
 80046bc:	f7ff ff56 	bl	800456c <write_all_registers.constprop.0>
 80046c0:	2800      	cmp	r0, #0
 80046c2:	d0dc      	beq.n	800467e <pca9956b_init+0x80>
 80046c4:	2300      	movs	r3, #0
 80046c6:	223f      	movs	r2, #63	@ 0x3f
 80046c8:	0029      	movs	r1, r5
 80046ca:	0020      	movs	r0, r4
 80046cc:	f7ff ff3d 	bl	800454a <write_register>
 80046d0:	2800      	cmp	r0, #0
 80046d2:	d0d4      	beq.n	800467e <pca9956b_init+0x80>
 80046d4:	2300      	movs	r3, #0
 80046d6:	2240      	movs	r2, #64	@ 0x40
 80046d8:	0029      	movs	r1, r5
 80046da:	0020      	movs	r0, r4
 80046dc:	f7ff ff35 	bl	800454a <write_register>
 80046e0:	2800      	cmp	r0, #0
 80046e2:	d0cc      	beq.n	800467e <pca9956b_init+0x80>
 80046e4:	22aa      	movs	r2, #170	@ 0xaa
 80046e6:	0029      	movs	r1, r5
 80046e8:	0020      	movs	r0, r4
 80046ea:	f7ff ff3f 	bl	800456c <write_all_registers.constprop.0>
 80046ee:	2800      	cmp	r0, #0
 80046f0:	d0c5      	beq.n	800467e <pca9956b_init+0x80>
 80046f2:	2320      	movs	r3, #32
 80046f4:	2200      	movs	r2, #0
 80046f6:	0029      	movs	r1, r5
 80046f8:	0020      	movs	r0, r4
 80046fa:	f7ff ff26 	bl	800454a <write_register>
 80046fe:	2800      	cmp	r0, #0
 8004700:	d0bd      	beq.n	800467e <pca9956b_init+0x80>
 8004702:	3501      	adds	r5, #1
 8004704:	b2ed      	uxtb	r5, r5
 8004706:	7d23      	ldrb	r3, [r4, #20]
 8004708:	42ab      	cmp	r3, r5
 800470a:	d8c4      	bhi.n	8004696 <pca9956b_init+0x98>
 800470c:	2301      	movs	r3, #1
 800470e:	76e3      	strb	r3, [r4, #27]
 8004710:	e7bf      	b.n	8004692 <pca9956b_init+0x94>

08004712 <pca9956b_apply_current_profile>:
 8004712:	b5f0      	push	{r4, r5, r6, r7, lr}
 8004714:	b08b      	sub	sp, #44	@ 0x2c
 8004716:	1e04      	subs	r4, r0, #0
 8004718:	9101      	str	r1, [sp, #4]
 800471a:	d101      	bne.n	8004720 <pca9956b_apply_current_profile+0xe>
 800471c:	2600      	movs	r6, #0
 800471e:	e015      	b.n	800474c <pca9956b_apply_current_profile+0x3a>
 8004720:	7ec6      	ldrb	r6, [r0, #27]
 8004722:	2e00      	cmp	r6, #0
 8004724:	d012      	beq.n	800474c <pca9956b_apply_current_profile+0x3a>
 8004726:	7f45      	ldrb	r5, [r0, #29]
 8004728:	2d00      	cmp	r5, #0
 800472a:	d1f7      	bne.n	800471c <pca9956b_apply_current_profile+0xa>
 800472c:	9b01      	ldr	r3, [sp, #4]
 800472e:	42ab      	cmp	r3, r5
 8004730:	d0f4      	beq.n	800471c <pca9956b_apply_current_profile+0xa>
 8004732:	2118      	movs	r1, #24
 8004734:	7d03      	ldrb	r3, [r0, #20]
 8004736:	434b      	muls	r3, r1
 8004738:	4293      	cmp	r3, r2
 800473a:	d1ef      	bne.n	800471c <pca9956b_apply_current_profile+0xa>
 800473c:	f7ff fefa 	bl	8004534 <hardware_off>
 8004740:	0006      	movs	r6, r0
 8004742:	42a8      	cmp	r0, r5
 8004744:	d105      	bne.n	8004752 <pca9956b_apply_current_profile+0x40>
 8004746:	0020      	movs	r0, r4
 8004748:	f7ff ff23 	bl	8004592 <latch_fault_and_force_off>
 800474c:	0030      	movs	r0, r6
 800474e:	b00b      	add	sp, #44	@ 0x2c
 8004750:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8004752:	7725      	strb	r5, [r4, #28]
 8004754:	7d23      	ldrb	r3, [r4, #20]
 8004756:	42ab      	cmp	r3, r5
 8004758:	d802      	bhi.n	8004760 <pca9956b_apply_current_profile+0x4e>
 800475a:	2301      	movs	r3, #1
 800475c:	7723      	strb	r3, [r4, #28]
 800475e:	e7f5      	b.n	800474c <pca9956b_apply_current_profile+0x3a>
 8004760:	2118      	movs	r1, #24
 8004762:	22a2      	movs	r2, #162	@ 0xa2
 8004764:	4369      	muls	r1, r5
 8004766:	ab02      	add	r3, sp, #8
 8004768:	711a      	strb	r2, [r3, #4]
 800476a:	9b01      	ldr	r3, [sp, #4]
 800476c:	3a8a      	subs	r2, #138	@ 0x8a
 800476e:	1859      	adds	r1, r3, r1
 8004770:	ab02      	add	r3, sp, #8
 8004772:	1d58      	adds	r0, r3, #5
 8004774:	f7fb fd1c 	bl	80001b0 <memcpy>
 8004778:	2340      	movs	r3, #64	@ 0x40
 800477a:	2200      	movs	r2, #0
 800477c:	0029      	movs	r1, r5
 800477e:	0020      	movs	r0, r4
 8004780:	f7ff fee3 	bl	800454a <write_register>
 8004784:	2800      	cmp	r0, #0
 8004786:	d103      	bne.n	8004790 <pca9956b_apply_current_profile+0x7e>
 8004788:	0020      	movs	r0, r4
 800478a:	f7ff ff02 	bl	8004592 <latch_fault_and_force_off>
 800478e:	e7c5      	b.n	800471c <pca9956b_apply_current_profile+0xa>
 8004790:	7d23      	ldrb	r3, [r4, #20]
 8004792:	42ab      	cmp	r3, r5
 8004794:	d9f8      	bls.n	8004788 <pca9956b_apply_current_profile+0x76>
 8004796:	1963      	adds	r3, r4, r5
 8004798:	7d59      	ldrb	r1, [r3, #21]
 800479a:	6863      	ldr	r3, [r4, #4]
 800479c:	6820      	ldr	r0, [r4, #0]
 800479e:	001f      	movs	r7, r3
 80047a0:	aa03      	add	r2, sp, #12
 80047a2:	2319      	movs	r3, #25
 80047a4:	47b8      	blx	r7
 80047a6:	2800      	cmp	r0, #0
 80047a8:	d0ee      	beq.n	8004788 <pca9956b_apply_current_profile+0x76>
 80047aa:	2320      	movs	r3, #32
 80047ac:	2200      	movs	r2, #0
 80047ae:	0029      	movs	r1, r5
 80047b0:	0020      	movs	r0, r4
 80047b2:	f7ff feca 	bl	800454a <write_register>
 80047b6:	2800      	cmp	r0, #0
 80047b8:	d0e6      	beq.n	8004788 <pca9956b_apply_current_profile+0x76>
 80047ba:	3501      	adds	r5, #1
 80047bc:	b2ed      	uxtb	r5, r5
 80047be:	e7c9      	b.n	8004754 <pca9956b_apply_current_profile+0x42>

080047c0 <pca9956b_write_chip_pwm>:
 80047c0:	b570      	push	{r4, r5, r6, lr}
 80047c2:	0004      	movs	r4, r0
 80047c4:	000d      	movs	r5, r1
 80047c6:	0016      	movs	r6, r2
 80047c8:	b088      	sub	sp, #32
 80047ca:	2800      	cmp	r0, #0
 80047cc:	d005      	beq.n	80047da <pca9956b_write_chip_pwm+0x1a>
 80047ce:	7ec0      	ldrb	r0, [r0, #27]
 80047d0:	2800      	cmp	r0, #0
 80047d2:	d003      	beq.n	80047dc <pca9956b_write_chip_pwm+0x1c>
 80047d4:	7f63      	ldrb	r3, [r4, #29]
 80047d6:	2b00      	cmp	r3, #0
 80047d8:	d002      	beq.n	80047e0 <pca9956b_write_chip_pwm+0x20>
 80047da:	2000      	movs	r0, #0
 80047dc:	b008      	add	sp, #32
 80047de:	bd70      	pop	{r4, r5, r6, pc}
 80047e0:	7f20      	ldrb	r0, [r4, #28]
 80047e2:	4298      	cmp	r0, r3
 80047e4:	d0fa      	beq.n	80047dc <pca9956b_write_chip_pwm+0x1c>
 80047e6:	429a      	cmp	r2, r3
 80047e8:	d0f7      	beq.n	80047da <pca9956b_write_chip_pwm+0x1a>
 80047ea:	7d23      	ldrb	r3, [r4, #20]
 80047ec:	428b      	cmp	r3, r1
 80047ee:	d9f4      	bls.n	80047da <pca9956b_write_chip_pwm+0x1a>
 80047f0:	68a3      	ldr	r3, [r4, #8]
 80047f2:	6820      	ldr	r0, [r4, #0]
 80047f4:	4798      	blx	r3
 80047f6:	2800      	cmp	r0, #0
 80047f8:	d103      	bne.n	8004802 <pca9956b_write_chip_pwm+0x42>
 80047fa:	0020      	movs	r0, r4
 80047fc:	f7ff fec9 	bl	8004592 <latch_fault_and_force_off>
 8004800:	e7eb      	b.n	80047da <pca9956b_write_chip_pwm+0x1a>
 8004802:	238a      	movs	r3, #138	@ 0x8a
 8004804:	466a      	mov	r2, sp
 8004806:	7113      	strb	r3, [r2, #4]
 8004808:	466b      	mov	r3, sp
 800480a:	2218      	movs	r2, #24
 800480c:	1d58      	adds	r0, r3, #5
 800480e:	0031      	movs	r1, r6
 8004810:	f7fb fcce 	bl	80001b0 <memcpy>
 8004814:	7d23      	ldrb	r3, [r4, #20]
 8004816:	42ab      	cmp	r3, r5
 8004818:	d9ef      	bls.n	80047fa <pca9956b_write_chip_pwm+0x3a>
 800481a:	1965      	adds	r5, r4, r5
 800481c:	7d69      	ldrb	r1, [r5, #21]
 800481e:	2319      	movs	r3, #25
 8004820:	6865      	ldr	r5, [r4, #4]
 8004822:	6820      	ldr	r0, [r4, #0]
 8004824:	aa01      	add	r2, sp, #4
 8004826:	47a8      	blx	r5
 8004828:	2800      	cmp	r0, #0
 800482a:	d1d7      	bne.n	80047dc <pca9956b_write_chip_pwm+0x1c>
 800482c:	e7e5      	b.n	80047fa <pca9956b_write_chip_pwm+0x3a>

0800482e <pca9956b_is_ready>:
 800482e:	2800      	cmp	r0, #0
 8004830:	d103      	bne.n	800483a <pca9956b_is_ready+0xc>
 8004832:	2000      	movs	r0, #0
 8004834:	2301      	movs	r3, #1
 8004836:	4018      	ands	r0, r3
 8004838:	4770      	bx	lr
 800483a:	7ec3      	ldrb	r3, [r0, #27]
 800483c:	2b00      	cmp	r3, #0
 800483e:	d0f8      	beq.n	8004832 <pca9956b_is_ready+0x4>
 8004840:	7f03      	ldrb	r3, [r0, #28]
 8004842:	2b00      	cmp	r3, #0
 8004844:	d0f5      	beq.n	8004832 <pca9956b_is_ready+0x4>
 8004846:	7f43      	ldrb	r3, [r0, #29]
 8004848:	2001      	movs	r0, #1
 800484a:	4058      	eors	r0, r3
 800484c:	e7f2      	b.n	8004834 <pca9956b_is_ready+0x6>
	...

08004850 <pca_fault_init>:
 8004850:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8004852:	0004      	movs	r4, r0
 8004854:	000e      	movs	r6, r1
 8004856:	0017      	movs	r7, r2
 8004858:	001d      	movs	r5, r3
 800485a:	2800      	cmp	r0, #0
 800485c:	d101      	bne.n	8004862 <pca_fault_init+0x12>
 800485e:	2000      	movs	r0, #0
 8004860:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8004862:	2254      	movs	r2, #84	@ 0x54
 8004864:	2100      	movs	r1, #0
 8004866:	f7fb fcac 	bl	80001c2 <memset>
 800486a:	2f00      	cmp	r7, #0
 800486c:	d00d      	beq.n	800488a <pca_fault_init+0x3a>
 800486e:	002b      	movs	r3, r5
 8004870:	3b08      	subs	r3, #8
 8004872:	2b6f      	cmp	r3, #111	@ 0x6f
 8004874:	d809      	bhi.n	800488a <pca_fault_init+0x3a>
 8004876:	9b07      	ldr	r3, [sp, #28]
 8004878:	9a06      	ldr	r2, [sp, #24]
 800487a:	431a      	orrs	r2, r3
 800487c:	4b0b      	ldr	r3, [pc, #44]	@ (80048ac <pca_fault_init+0x5c>)
 800487e:	429a      	cmp	r2, r3
 8004880:	d803      	bhi.n	800488a <pca_fault_init+0x3a>
 8004882:	9b07      	ldr	r3, [sp, #28]
 8004884:	9a06      	ldr	r2, [sp, #24]
 8004886:	4393      	bics	r3, r2
 8004888:	d003      	beq.n	8004892 <pca_fault_init+0x42>
 800488a:	2301      	movs	r3, #1
 800488c:	3429      	adds	r4, #41	@ 0x29
 800488e:	7023      	strb	r3, [r4, #0]
 8004890:	e7e5      	b.n	800485e <pca_fault_init+0xe>
 8004892:	2001      	movs	r0, #1
 8004894:	9b06      	ldr	r3, [sp, #24]
 8004896:	6026      	str	r6, [r4, #0]
 8004898:	6163      	str	r3, [r4, #20]
 800489a:	9b07      	ldr	r3, [sp, #28]
 800489c:	6067      	str	r7, [r4, #4]
 800489e:	61a3      	str	r3, [r4, #24]
 80048a0:	9b08      	ldr	r3, [sp, #32]
 80048a2:	7225      	strb	r5, [r4, #8]
 80048a4:	61e3      	str	r3, [r4, #28]
 80048a6:	3428      	adds	r4, #40	@ 0x28
 80048a8:	7020      	strb	r0, [r4, #0]
 80048aa:	e7d9      	b.n	8004860 <pca_fault_init+0x10>
 80048ac:	00ffffff 	.word	0x00ffffff

080048b0 <pca_fault_decode>:
 80048b0:	b5f0      	push	{r4, r5, r6, r7, lr}
 80048b2:	b08f      	sub	sp, #60	@ 0x3c
 80048b4:	0007      	movs	r7, r0
 80048b6:	001d      	movs	r5, r3
 80048b8:	9101      	str	r1, [sp, #4]
 80048ba:	9202      	str	r2, [sp, #8]
 80048bc:	2a00      	cmp	r2, #0
 80048be:	d002      	beq.n	80048c6 <pca_fault_decode+0x16>
 80048c0:	9b15      	ldr	r3, [sp, #84]	@ 0x54
 80048c2:	2b00      	cmp	r3, #0
 80048c4:	d102      	bne.n	80048cc <pca_fault_decode+0x1c>
 80048c6:	2000      	movs	r0, #0
 80048c8:	b00f      	add	sp, #60	@ 0x3c
 80048ca:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80048cc:	9b01      	ldr	r3, [sp, #4]
 80048ce:	4298      	cmp	r0, r3
 80048d0:	d1f9      	bne.n	80048c6 <pca_fault_decode+0x16>
 80048d2:	4b31      	ldr	r3, [pc, #196]	@ (8004998 <pca_fault_decode+0xe8>)
 80048d4:	429d      	cmp	r5, r3
 80048d6:	d8f6      	bhi.n	80048c6 <pca_fault_decode+0x16>
 80048d8:	9c14      	ldr	r4, [sp, #80]	@ 0x50
 80048da:	43ac      	bics	r4, r5
 80048dc:	d1f3      	bne.n	80048c6 <pca_fault_decode+0x16>
 80048de:	2214      	movs	r2, #20
 80048e0:	0021      	movs	r1, r4
 80048e2:	a809      	add	r0, sp, #36	@ 0x24
 80048e4:	f7fb fc6d 	bl	80001c2 <memset>
 80048e8:	09fb      	lsrs	r3, r7, #7
 80048ea:	9303      	str	r3, [sp, #12]
 80048ec:	067b      	lsls	r3, r7, #25
 80048ee:	0fdb      	lsrs	r3, r3, #31
 80048f0:	9300      	str	r3, [sp, #0]
 80048f2:	2301      	movs	r3, #1
 80048f4:	0020      	movs	r0, r4
 80048f6:	0026      	movs	r6, r4
 80048f8:	0022      	movs	r2, r4
 80048fa:	469c      	mov	ip, r3
 80048fc:	9902      	ldr	r1, [sp, #8]
 80048fe:	0893      	lsrs	r3, r2, #2
 8004900:	5ccb      	ldrb	r3, [r1, r3]
 8004902:	2103      	movs	r1, #3
 8004904:	4011      	ands	r1, r2
 8004906:	0049      	lsls	r1, r1, #1
 8004908:	410b      	asrs	r3, r1
 800490a:	2103      	movs	r1, #3
 800490c:	400b      	ands	r3, r1
 800490e:	2b01      	cmp	r3, #1
 8004910:	d135      	bne.n	800497e <pca_fault_decode+0xce>
 8004912:	4093      	lsls	r3, r2
 8004914:	431c      	orrs	r4, r3
 8004916:	3201      	adds	r2, #1
 8004918:	2a18      	cmp	r2, #24
 800491a:	d1ef      	bne.n	80048fc <pca_fault_decode+0x4c>
 800491c:	0022      	movs	r2, r4
 800491e:	4332      	orrs	r2, r6
 8004920:	4302      	orrs	r2, r0
 8004922:	1e53      	subs	r3, r2, #1
 8004924:	419a      	sbcs	r2, r3
 8004926:	2100      	movs	r1, #0
 8004928:	9b00      	ldr	r3, [sp, #0]
 800492a:	405a      	eors	r2, r3
 800492c:	428d      	cmp	r5, r1
 800492e:	d004      	beq.n	800493a <pca_fault_decode+0x8a>
 8004930:	9914      	ldr	r1, [sp, #80]	@ 0x50
 8004932:	4029      	ands	r1, r5
 8004934:	1b49      	subs	r1, r1, r5
 8004936:	424b      	negs	r3, r1
 8004938:	4159      	adcs	r1, r3
 800493a:	9006      	str	r0, [sp, #24]
 800493c:	9814      	ldr	r0, [sp, #80]	@ 0x50
 800493e:	ab04      	add	r3, sp, #16
 8004940:	9404      	str	r4, [sp, #16]
 8004942:	9008      	str	r0, [sp, #32]
 8004944:	9c01      	ldr	r4, [sp, #4]
 8004946:	1c58      	adds	r0, r3, #1
 8004948:	77c7      	strb	r7, [r0, #31]
 800494a:	1c98      	adds	r0, r3, #2
 800494c:	77c4      	strb	r4, [r0, #31]
 800494e:	9c03      	ldr	r4, [sp, #12]
 8004950:	1cd8      	adds	r0, r3, #3
 8004952:	77c4      	strb	r4, [r0, #31]
 8004954:	466c      	mov	r4, sp
 8004956:	7824      	ldrb	r4, [r4, #0]
 8004958:	a805      	add	r0, sp, #20
 800495a:	77c4      	strb	r4, [r0, #31]
 800495c:	1d58      	adds	r0, r3, #5
 800495e:	77c2      	strb	r2, [r0, #31]
 8004960:	1d9a      	adds	r2, r3, #6
 8004962:	77d1      	strb	r1, [r2, #31]
 8004964:	9a15      	ldr	r2, [sp, #84]	@ 0x54
 8004966:	9605      	str	r6, [sp, #20]
 8004968:	9507      	str	r5, [sp, #28]
 800496a:	cb13      	ldmia	r3!, {r0, r1, r4}
 800496c:	c213      	stmia	r2!, {r0, r1, r4}
 800496e:	cb13      	ldmia	r3!, {r0, r1, r4}
 8004970:	c213      	stmia	r2!, {r0, r1, r4}
 8004972:	cb13      	ldmia	r3!, {r0, r1, r4}
 8004974:	c213      	stmia	r2!, {r0, r1, r4}
 8004976:	681b      	ldr	r3, [r3, #0]
 8004978:	2001      	movs	r0, #1
 800497a:	6013      	str	r3, [r2, #0]
 800497c:	e7a4      	b.n	80048c8 <pca_fault_decode+0x18>
 800497e:	2b02      	cmp	r3, #2
 8004980:	d103      	bne.n	800498a <pca_fault_decode+0xda>
 8004982:	4663      	mov	r3, ip
 8004984:	4093      	lsls	r3, r2
 8004986:	431e      	orrs	r6, r3
 8004988:	e7c5      	b.n	8004916 <pca_fault_decode+0x66>
 800498a:	2b03      	cmp	r3, #3
 800498c:	d1c3      	bne.n	8004916 <pca_fault_decode+0x66>
 800498e:	4663      	mov	r3, ip
 8004990:	4093      	lsls	r3, r2
 8004992:	4318      	orrs	r0, r3
 8004994:	e7bf      	b.n	8004916 <pca_fault_decode+0x66>
 8004996:	46c0      	nop			@ (mov r8, r8)
 8004998:	00ffffff 	.word	0x00ffffff

0800499c <pca_fault_poll>:
 800499c:	b5f0      	push	{r4, r5, r6, r7, lr}
 800499e:	0004      	movs	r4, r0
 80049a0:	000e      	movs	r6, r1
 80049a2:	b091      	sub	sp, #68	@ 0x44
 80049a4:	2800      	cmp	r0, #0
 80049a6:	d014      	beq.n	80049d2 <pca_fault_poll+0x36>
 80049a8:	0003      	movs	r3, r0
 80049aa:	3328      	adds	r3, #40	@ 0x28
 80049ac:	781b      	ldrb	r3, [r3, #0]
 80049ae:	2b00      	cmp	r3, #0
 80049b0:	d00f      	beq.n	80049d2 <pca_fault_poll+0x36>
 80049b2:	0003      	movs	r3, r0
 80049b4:	3329      	adds	r3, #41	@ 0x29
 80049b6:	9303      	str	r3, [sp, #12]
 80049b8:	781a      	ldrb	r2, [r3, #0]
 80049ba:	2a00      	cmp	r2, #0
 80049bc:	d109      	bne.n	80049d2 <pca_fault_poll+0x36>
 80049be:	69c3      	ldr	r3, [r0, #28]
 80049c0:	1acb      	subs	r3, r1, r3
 80049c2:	2b05      	cmp	r3, #5
 80049c4:	d907      	bls.n	80049d6 <pca_fault_poll+0x3a>
 80049c6:	2301      	movs	r3, #1
 80049c8:	9a03      	ldr	r2, [sp, #12]
 80049ca:	342a      	adds	r4, #42	@ 0x2a
 80049cc:	7013      	strb	r3, [r2, #0]
 80049ce:	2300      	movs	r3, #0
 80049d0:	7023      	strb	r3, [r4, #0]
 80049d2:	b011      	add	sp, #68	@ 0x44
 80049d4:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80049d6:	250f      	movs	r5, #15
 80049d8:	ab02      	add	r3, sp, #8
 80049da:	18ed      	adds	r5, r5, r3
 80049dc:	702a      	strb	r2, [r5, #0]
 80049de:	7a42      	ldrb	r2, [r0, #9]
 80049e0:	61c1      	str	r1, [r0, #28]
 80049e2:	2a00      	cmp	r2, #0
 80049e4:	d112      	bne.n	8004a0c <pca_fault_poll+0x70>
 80049e6:	2201      	movs	r2, #1
 80049e8:	002b      	movs	r3, r5
 80049ea:	7a21      	ldrb	r1, [r4, #8]
 80049ec:	6867      	ldr	r7, [r4, #4]
 80049ee:	6820      	ldr	r0, [r4, #0]
 80049f0:	47b8      	blx	r7
 80049f2:	2800      	cmp	r0, #0
 80049f4:	d0e7      	beq.n	80049c6 <pca_fault_poll+0x2a>
 80049f6:	7a63      	ldrb	r3, [r4, #9]
 80049f8:	782a      	ldrb	r2, [r5, #0]
 80049fa:	2b00      	cmp	r3, #0
 80049fc:	d10b      	bne.n	8004a16 <pca_fault_poll+0x7a>
 80049fe:	0021      	movs	r1, r4
 8004a00:	312a      	adds	r1, #42	@ 0x2a
 8004a02:	700b      	strb	r3, [r1, #0]
 8004a04:	72a2      	strb	r2, [r4, #10]
 8004a06:	6226      	str	r6, [r4, #32]
 8004a08:	3301      	adds	r3, #1
 8004a0a:	e030      	b.n	8004a6e <pca_fault_poll+0xd2>
 8004a0c:	2a07      	cmp	r2, #7
 8004a0e:	d0ea      	beq.n	80049e6 <pca_fault_poll+0x4a>
 8004a10:	3240      	adds	r2, #64	@ 0x40
 8004a12:	b2d2      	uxtb	r2, r2
 8004a14:	e7e8      	b.n	80049e8 <pca_fault_poll+0x4c>
 8004a16:	2b06      	cmp	r3, #6
 8004a18:	d802      	bhi.n	8004a20 <pca_fault_poll+0x84>
 8004a1a:	18e1      	adds	r1, r4, r3
 8004a1c:	728a      	strb	r2, [r1, #10]
 8004a1e:	e7f3      	b.n	8004a08 <pca_fault_poll+0x6c>
 8004a20:	7aa0      	ldrb	r0, [r4, #10]
 8004a22:	4290      	cmp	r0, r2
 8004a24:	d1cf      	bne.n	80049c6 <pca_fault_poll+0x2a>
 8004a26:	6a27      	ldr	r7, [r4, #32]
 8004a28:	1bf3      	subs	r3, r6, r7
 8004a2a:	2b14      	cmp	r3, #20
 8004a2c:	d8cb      	bhi.n	80049c6 <pca_fault_poll+0x2a>
 8004a2e:	0022      	movs	r2, r4
 8004a30:	ad06      	add	r5, sp, #24
 8004a32:	9501      	str	r5, [sp, #4]
 8004a34:	69a3      	ldr	r3, [r4, #24]
 8004a36:	0001      	movs	r1, r0
 8004a38:	9300      	str	r3, [sp, #0]
 8004a3a:	6963      	ldr	r3, [r4, #20]
 8004a3c:	320b      	adds	r2, #11
 8004a3e:	f7ff ff37 	bl	80048b0 <pca_fault_decode>
 8004a42:	2800      	cmp	r0, #0
 8004a44:	d0bf      	beq.n	80049c6 <pca_fault_poll+0x2a>
 8004a46:	6a63      	ldr	r3, [r4, #36]	@ 0x24
 8004a48:	970b      	str	r7, [sp, #44]	@ 0x2c
 8004a4a:	3301      	adds	r3, #1
 8004a4c:	6263      	str	r3, [r4, #36]	@ 0x24
 8004a4e:	930d      	str	r3, [sp, #52]	@ 0x34
 8004a50:	0023      	movs	r3, r4
 8004a52:	960c      	str	r6, [sp, #48]	@ 0x30
 8004a54:	332c      	adds	r3, #44	@ 0x2c
 8004a56:	cd07      	ldmia	r5!, {r0, r1, r2}
 8004a58:	c307      	stmia	r3!, {r0, r1, r2}
 8004a5a:	cd07      	ldmia	r5!, {r0, r1, r2}
 8004a5c:	c307      	stmia	r3!, {r0, r1, r2}
 8004a5e:	cd07      	ldmia	r5!, {r0, r1, r2}
 8004a60:	c307      	stmia	r3!, {r0, r1, r2}
 8004a62:	682a      	ldr	r2, [r5, #0]
 8004a64:	601a      	str	r2, [r3, #0]
 8004a66:	2201      	movs	r2, #1
 8004a68:	3b26      	subs	r3, #38	@ 0x26
 8004a6a:	701a      	strb	r2, [r3, #0]
 8004a6c:	2300      	movs	r3, #0
 8004a6e:	7263      	strb	r3, [r4, #9]
 8004a70:	e7af      	b.n	80049d2 <pca_fault_poll+0x36>

08004a72 <pca_fault_get>:
 8004a72:	0003      	movs	r3, r0
 8004a74:	b570      	push	{r4, r5, r6, lr}
 8004a76:	2800      	cmp	r0, #0
 8004a78:	d101      	bne.n	8004a7e <pca_fault_get+0xc>
 8004a7a:	2000      	movs	r0, #0
 8004a7c:	bd70      	pop	{r4, r5, r6, pc}
 8004a7e:	2a00      	cmp	r2, #0
 8004a80:	d0fb      	beq.n	8004a7a <pca_fault_get+0x8>
 8004a82:	3028      	adds	r0, #40	@ 0x28
 8004a84:	7800      	ldrb	r0, [r0, #0]
 8004a86:	2800      	cmp	r0, #0
 8004a88:	d0f8      	beq.n	8004a7c <pca_fault_get+0xa>
 8004a8a:	0018      	movs	r0, r3
 8004a8c:	3029      	adds	r0, #41	@ 0x29
 8004a8e:	7800      	ldrb	r0, [r0, #0]
 8004a90:	2800      	cmp	r0, #0
 8004a92:	d1f2      	bne.n	8004a7a <pca_fault_get+0x8>
 8004a94:	0018      	movs	r0, r3
 8004a96:	302a      	adds	r0, #42	@ 0x2a
 8004a98:	7800      	ldrb	r0, [r0, #0]
 8004a9a:	2800      	cmp	r0, #0
 8004a9c:	d0ee      	beq.n	8004a7c <pca_fault_get+0xa>
 8004a9e:	6c1c      	ldr	r4, [r3, #64]	@ 0x40
 8004aa0:	1b0c      	subs	r4, r1, r4
 8004aa2:	2c14      	cmp	r4, #20
 8004aa4:	d8e9      	bhi.n	8004a7a <pca_fault_get+0x8>
 8004aa6:	69dc      	ldr	r4, [r3, #28]
 8004aa8:	1b09      	subs	r1, r1, r4
 8004aaa:	2905      	cmp	r1, #5
 8004aac:	d8e5      	bhi.n	8004a7a <pca_fault_get+0x8>
 8004aae:	332c      	adds	r3, #44	@ 0x2c
 8004ab0:	cb70      	ldmia	r3!, {r4, r5, r6}
 8004ab2:	c270      	stmia	r2!, {r4, r5, r6}
 8004ab4:	0011      	movs	r1, r2
 8004ab6:	cb34      	ldmia	r3!, {r2, r4, r5}
 8004ab8:	c134      	stmia	r1!, {r2, r4, r5}
 8004aba:	cb34      	ldmia	r3!, {r2, r4, r5}
 8004abc:	c134      	stmia	r1!, {r2, r4, r5}
 8004abe:	681b      	ldr	r3, [r3, #0]
 8004ac0:	600b      	str	r3, [r1, #0]
 8004ac2:	e7db      	b.n	8004a7c <pca_fault_get+0xa>

08004ac4 <io_valid>:
 8004ac4:	2800      	cmp	r0, #0
 8004ac6:	d101      	bne.n	8004acc <io_valid+0x8>
 8004ac8:	2000      	movs	r0, #0
 8004aca:	4770      	bx	lr
 8004acc:	6843      	ldr	r3, [r0, #4]
 8004ace:	2b00      	cmp	r3, #0
 8004ad0:	d0fa      	beq.n	8004ac8 <io_valid+0x4>
 8004ad2:	6883      	ldr	r3, [r0, #8]
 8004ad4:	2b00      	cmp	r3, #0
 8004ad6:	d0f7      	beq.n	8004ac8 <io_valid+0x4>
 8004ad8:	68c3      	ldr	r3, [r0, #12]
 8004ada:	2b00      	cmp	r3, #0
 8004adc:	d0f4      	beq.n	8004ac8 <io_valid+0x4>
 8004ade:	6903      	ldr	r3, [r0, #16]
 8004ae0:	2b00      	cmp	r3, #0
 8004ae2:	d0f1      	beq.n	8004ac8 <io_valid+0x4>
 8004ae4:	6943      	ldr	r3, [r0, #20]
 8004ae6:	2b00      	cmp	r3, #0
 8004ae8:	d0ee      	beq.n	8004ac8 <io_valid+0x4>
 8004aea:	6980      	ldr	r0, [r0, #24]
 8004aec:	1e43      	subs	r3, r0, #1
 8004aee:	4198      	sbcs	r0, r3
 8004af0:	e7eb      	b.n	8004aca <io_valid+0x6>

08004af2 <hardware_safe_for_i2c>:
 8004af2:	b510      	push	{r4, lr}
 8004af4:	6883      	ldr	r3, [r0, #8]
 8004af6:	0004      	movs	r4, r0
 8004af8:	6800      	ldr	r0, [r0, #0]
 8004afa:	4798      	blx	r3
 8004afc:	2800      	cmp	r0, #0
 8004afe:	d002      	beq.n	8004b06 <hardware_safe_for_i2c+0x14>
 8004b00:	68e3      	ldr	r3, [r4, #12]
 8004b02:	6820      	ldr	r0, [r4, #0]
 8004b04:	4798      	blx	r3
 8004b06:	bd10      	pop	{r4, pc}

08004b08 <write_register>:
 8004b08:	0013      	movs	r3, r2
 8004b0a:	b513      	push	{r0, r1, r4, lr}
 8004b0c:	aa01      	add	r2, sp, #4
 8004b0e:	7053      	strb	r3, [r2, #1]
 8004b10:	7011      	strb	r1, [r2, #0]
 8004b12:	7f01      	ldrb	r1, [r0, #28]
 8004b14:	6844      	ldr	r4, [r0, #4]
 8004b16:	2302      	movs	r3, #2
 8004b18:	6800      	ldr	r0, [r0, #0]
 8004b1a:	47a0      	blx	r4
 8004b1c:	bd16      	pop	{r1, r2, r4, pc}

08004b1e <write_bank>:
 8004b1e:	b570      	push	{r4, r5, r6, lr}
 8004b20:	b08a      	sub	sp, #40	@ 0x28
 8004b22:	466d      	mov	r5, sp
 8004b24:	0004      	movs	r4, r0
 8004b26:	7029      	strb	r1, [r5, #0]
 8004b28:	1c68      	adds	r0, r5, #1
 8004b2a:	0011      	movs	r1, r2
 8004b2c:	2224      	movs	r2, #36	@ 0x24
 8004b2e:	f7fb fb3f 	bl	80001b0 <memcpy>
 8004b32:	2325      	movs	r3, #37	@ 0x25
 8004b34:	466a      	mov	r2, sp
 8004b36:	7f21      	ldrb	r1, [r4, #28]
 8004b38:	6866      	ldr	r6, [r4, #4]
 8004b3a:	6820      	ldr	r0, [r4, #0]
 8004b3c:	47b0      	blx	r6
 8004b3e:	b00a      	add	sp, #40	@ 0x28
 8004b40:	bd70      	pop	{r4, r5, r6, pc}

08004b42 <force_off_and_latch_fault>:
 8004b42:	b570      	push	{r4, r5, r6, lr}
 8004b44:	1e04      	subs	r4, r0, #0
 8004b46:	d01c      	beq.n	8004b82 <force_off_and_latch_fault+0x40>
 8004b48:	2380      	movs	r3, #128	@ 0x80
 8004b4a:	2500      	movs	r5, #0
 8004b4c:	005b      	lsls	r3, r3, #1
 8004b4e:	8403      	strh	r3, [r0, #32]
 8004b50:	77c5      	strb	r5, [r0, #31]
 8004b52:	6983      	ldr	r3, [r0, #24]
 8004b54:	2101      	movs	r1, #1
 8004b56:	6800      	ldr	r0, [r0, #0]
 8004b58:	4798      	blx	r3
 8004b5a:	68a3      	ldr	r3, [r4, #8]
 8004b5c:	6820      	ldr	r0, [r4, #0]
 8004b5e:	4798      	blx	r3
 8004b60:	42a8      	cmp	r0, r5
 8004b62:	d00e      	beq.n	8004b82 <force_off_and_latch_fault+0x40>
 8004b64:	68e3      	ldr	r3, [r4, #12]
 8004b66:	6820      	ldr	r0, [r4, #0]
 8004b68:	4798      	blx	r3
 8004b6a:	42a8      	cmp	r0, r5
 8004b6c:	d009      	beq.n	8004b82 <force_off_and_latch_fault+0x40>
 8004b6e:	002a      	movs	r2, r5
 8004b70:	0029      	movs	r1, r5
 8004b72:	0020      	movs	r0, r4
 8004b74:	f7ff ffc8 	bl	8004b08 <write_register>
 8004b78:	2201      	movs	r2, #1
 8004b7a:	214a      	movs	r1, #74	@ 0x4a
 8004b7c:	0020      	movs	r0, r4
 8004b7e:	f7ff ffc3 	bl	8004b08 <write_register>
 8004b82:	bd70      	pop	{r4, r5, r6, pc}

08004b84 <group_members_valid>:
 8004b84:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8004b86:	0005      	movs	r5, r0
 8004b88:	000f      	movs	r7, r1
 8004b8a:	9200      	str	r2, [sp, #0]
 8004b8c:	9301      	str	r3, [sp, #4]
 8004b8e:	2800      	cmp	r0, #0
 8004b90:	d101      	bne.n	8004b96 <group_members_valid+0x12>
 8004b92:	2000      	movs	r0, #0
 8004b94:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 8004b96:	1e4b      	subs	r3, r1, #1
 8004b98:	2b03      	cmp	r3, #3
 8004b9a:	d8fa      	bhi.n	8004b92 <group_members_valid+0xe>
 8004b9c:	7f80      	ldrb	r0, [r0, #30]
 8004b9e:	2800      	cmp	r0, #0
 8004ba0:	d0f8      	beq.n	8004b94 <group_members_valid+0x10>
 8004ba2:	1cab      	adds	r3, r5, #2
 8004ba4:	7fdb      	ldrb	r3, [r3, #31]
 8004ba6:	2b00      	cmp	r3, #0
 8004ba8:	d1f3      	bne.n	8004b92 <group_members_valid+0xe>
 8004baa:	9b00      	ldr	r3, [sp, #0]
 8004bac:	2b00      	cmp	r3, #0
 8004bae:	d002      	beq.n	8004bb6 <group_members_valid+0x32>
 8004bb0:	7fe8      	ldrb	r0, [r5, #31]
 8004bb2:	2800      	cmp	r0, #0
 8004bb4:	d0ee      	beq.n	8004b94 <group_members_valid+0x10>
 8004bb6:	9b01      	ldr	r3, [sp, #4]
 8004bb8:	2b00      	cmp	r3, #0
 8004bba:	d003      	beq.n	8004bc4 <group_members_valid+0x40>
 8004bbc:	1c6b      	adds	r3, r5, #1
 8004bbe:	7fdb      	ldrb	r3, [r3, #31]
 8004bc0:	2b00      	cmp	r3, #0
 8004bc2:	d1e6      	bne.n	8004b92 <group_members_valid+0xe>
 8004bc4:	0028      	movs	r0, r5
 8004bc6:	f7ff ff7d 	bl	8004ac4 <io_valid>
 8004bca:	1e06      	subs	r6, r0, #0
 8004bcc:	d006      	beq.n	8004bdc <group_members_valid+0x58>
 8004bce:	2324      	movs	r3, #36	@ 0x24
 8004bd0:	002c      	movs	r4, r5
 8004bd2:	435f      	muls	r7, r3
 8004bd4:	3424      	adds	r4, #36	@ 0x24
 8004bd6:	19ef      	adds	r7, r5, r7
 8004bd8:	42bc      	cmp	r4, r7
 8004bda:	d101      	bne.n	8004be0 <group_members_valid+0x5c>
 8004bdc:	0030      	movs	r0, r6
 8004bde:	e7d9      	b.n	8004b94 <group_members_valid+0x10>
 8004be0:	7fa0      	ldrb	r0, [r4, #30]
 8004be2:	2800      	cmp	r0, #0
 8004be4:	d0d6      	beq.n	8004b94 <group_members_valid+0x10>
 8004be6:	1ca3      	adds	r3, r4, #2
 8004be8:	7fdb      	ldrb	r3, [r3, #31]
 8004bea:	2b00      	cmp	r3, #0
 8004bec:	d1d1      	bne.n	8004b92 <group_members_valid+0xe>
 8004bee:	9b00      	ldr	r3, [sp, #0]
 8004bf0:	2b00      	cmp	r3, #0
 8004bf2:	d002      	beq.n	8004bfa <group_members_valid+0x76>
 8004bf4:	7fe0      	ldrb	r0, [r4, #31]
 8004bf6:	2800      	cmp	r0, #0
 8004bf8:	d0cc      	beq.n	8004b94 <group_members_valid+0x10>
 8004bfa:	9b01      	ldr	r3, [sp, #4]
 8004bfc:	2b00      	cmp	r3, #0
 8004bfe:	d003      	beq.n	8004c08 <group_members_valid+0x84>
 8004c00:	1c63      	adds	r3, r4, #1
 8004c02:	7fdb      	ldrb	r3, [r3, #31]
 8004c04:	2b00      	cmp	r3, #0
 8004c06:	d1c4      	bne.n	8004b92 <group_members_valid+0xe>
 8004c08:	0020      	movs	r0, r4
 8004c0a:	f7ff ff5b 	bl	8004ac4 <io_valid>
 8004c0e:	2800      	cmp	r0, #0
 8004c10:	d0c0      	beq.n	8004b94 <group_members_valid+0x10>
 8004c12:	682a      	ldr	r2, [r5, #0]
 8004c14:	6823      	ldr	r3, [r4, #0]
 8004c16:	429a      	cmp	r2, r3
 8004c18:	d1bb      	bne.n	8004b92 <group_members_valid+0xe>
 8004c1a:	686a      	ldr	r2, [r5, #4]
 8004c1c:	6863      	ldr	r3, [r4, #4]
 8004c1e:	429a      	cmp	r2, r3
 8004c20:	d1b7      	bne.n	8004b92 <group_members_valid+0xe>
 8004c22:	68aa      	ldr	r2, [r5, #8]
 8004c24:	68a3      	ldr	r3, [r4, #8]
 8004c26:	429a      	cmp	r2, r3
 8004c28:	d1b3      	bne.n	8004b92 <group_members_valid+0xe>
 8004c2a:	68ea      	ldr	r2, [r5, #12]
 8004c2c:	68e3      	ldr	r3, [r4, #12]
 8004c2e:	429a      	cmp	r2, r3
 8004c30:	d1af      	bne.n	8004b92 <group_members_valid+0xe>
 8004c32:	692a      	ldr	r2, [r5, #16]
 8004c34:	6923      	ldr	r3, [r4, #16]
 8004c36:	429a      	cmp	r2, r3
 8004c38:	d1ab      	bne.n	8004b92 <group_members_valid+0xe>
 8004c3a:	696a      	ldr	r2, [r5, #20]
 8004c3c:	6963      	ldr	r3, [r4, #20]
 8004c3e:	429a      	cmp	r2, r3
 8004c40:	d1a7      	bne.n	8004b92 <group_members_valid+0xe>
 8004c42:	69aa      	ldr	r2, [r5, #24]
 8004c44:	69a3      	ldr	r3, [r4, #24]
 8004c46:	429a      	cmp	r2, r3
 8004c48:	d1a3      	bne.n	8004b92 <group_members_valid+0xe>
 8004c4a:	7f62      	ldrb	r2, [r4, #29]
 8004c4c:	7f6b      	ldrb	r3, [r5, #29]
 8004c4e:	429a      	cmp	r2, r3
 8004c50:	d19f      	bne.n	8004b92 <group_members_valid+0xe>
 8004c52:	002b      	movs	r3, r5
 8004c54:	7f22      	ldrb	r2, [r4, #28]
 8004c56:	7f19      	ldrb	r1, [r3, #28]
 8004c58:	4291      	cmp	r1, r2
 8004c5a:	d09a      	beq.n	8004b92 <group_members_valid+0xe>
 8004c5c:	3324      	adds	r3, #36	@ 0x24
 8004c5e:	42a3      	cmp	r3, r4
 8004c60:	d1f9      	bne.n	8004c56 <group_members_valid+0xd2>
 8004c62:	3424      	adds	r4, #36	@ 0x24
 8004c64:	e7b8      	b.n	8004bd8 <group_members_valid+0x54>

08004c66 <group_latch_fault>:
 8004c66:	b570      	push	{r4, r5, r6, lr}
 8004c68:	0004      	movs	r4, r0
 8004c6a:	000d      	movs	r5, r1
 8004c6c:	2800      	cmp	r0, #0
 8004c6e:	d01c      	beq.n	8004caa <group_latch_fault+0x44>
 8004c70:	1e4b      	subs	r3, r1, #1
 8004c72:	2b03      	cmp	r3, #3
 8004c74:	d819      	bhi.n	8004caa <group_latch_fault+0x44>
 8004c76:	f7ff ff25 	bl	8004ac4 <io_valid>
 8004c7a:	2800      	cmp	r0, #0
 8004c7c:	d015      	beq.n	8004caa <group_latch_fault+0x44>
 8004c7e:	6963      	ldr	r3, [r4, #20]
 8004c80:	2101      	movs	r1, #1
 8004c82:	6820      	ldr	r0, [r4, #0]
 8004c84:	4798      	blx	r3
 8004c86:	69a3      	ldr	r3, [r4, #24]
 8004c88:	2101      	movs	r1, #1
 8004c8a:	6820      	ldr	r0, [r4, #0]
 8004c8c:	4798      	blx	r3
 8004c8e:	2124      	movs	r1, #36	@ 0x24
 8004c90:	4369      	muls	r1, r5
 8004c92:	0023      	movs	r3, r4
 8004c94:	311f      	adds	r1, #31
 8004c96:	1864      	adds	r4, r4, r1
 8004c98:	2200      	movs	r2, #0
 8004c9a:	2101      	movs	r1, #1
 8004c9c:	331f      	adds	r3, #31
 8004c9e:	705a      	strb	r2, [r3, #1]
 8004ca0:	701a      	strb	r2, [r3, #0]
 8004ca2:	7099      	strb	r1, [r3, #2]
 8004ca4:	3324      	adds	r3, #36	@ 0x24
 8004ca6:	42a3      	cmp	r3, r4
 8004ca8:	d1f9      	bne.n	8004c9e <group_latch_fault+0x38>
 8004caa:	bd70      	pop	{r4, r5, r6, pc}

08004cac <is31fl3236a_address_from_ad>:
 8004cac:	23ff      	movs	r3, #255	@ 0xff
 8004cae:	2803      	cmp	r0, #3
 8004cb0:	d801      	bhi.n	8004cb6 <is31fl3236a_address_from_ad+0xa>
 8004cb2:	303c      	adds	r0, #60	@ 0x3c
 8004cb4:	b2c3      	uxtb	r3, r0
 8004cb6:	0018      	movs	r0, r3
 8004cb8:	4770      	bx	lr

08004cba <is31fl3236a_initialize>:
 8004cba:	b5f0      	push	{r4, r5, r6, r7, lr}
 8004cbc:	0004      	movs	r4, r0
 8004cbe:	000d      	movs	r5, r1
 8004cc0:	0017      	movs	r7, r2
 8004cc2:	001e      	movs	r6, r3
 8004cc4:	b08b      	sub	sp, #44	@ 0x2c
 8004cc6:	2800      	cmp	r0, #0
 8004cc8:	d01f      	beq.n	8004d0a <is31fl3236a_initialize+0x50>
 8004cca:	2224      	movs	r2, #36	@ 0x24
 8004ccc:	2100      	movs	r1, #0
 8004cce:	f7fb fa78 	bl	80001c2 <memset>
 8004cd2:	0028      	movs	r0, r5
 8004cd4:	f7ff fef6 	bl	8004ac4 <io_valid>
 8004cd8:	2800      	cmp	r0, #0
 8004cda:	d017      	beq.n	8004d0c <is31fl3236a_initialize+0x52>
 8004cdc:	003b      	movs	r3, r7
 8004cde:	3b08      	subs	r3, #8
 8004ce0:	2b6f      	cmp	r3, #111	@ 0x6f
 8004ce2:	d812      	bhi.n	8004d0a <is31fl3236a_initialize+0x50>
 8004ce4:	2e01      	cmp	r6, #1
 8004ce6:	d810      	bhi.n	8004d0a <is31fl3236a_initialize+0x50>
 8004ce8:	0023      	movs	r3, r4
 8004cea:	cd07      	ldmia	r5!, {r0, r1, r2}
 8004cec:	c307      	stmia	r3!, {r0, r1, r2}
 8004cee:	cd07      	ldmia	r5!, {r0, r1, r2}
 8004cf0:	c307      	stmia	r3!, {r0, r1, r2}
 8004cf2:	682a      	ldr	r2, [r5, #0]
 8004cf4:	0020      	movs	r0, r4
 8004cf6:	601a      	str	r2, [r3, #0]
 8004cf8:	7727      	strb	r7, [r4, #28]
 8004cfa:	7766      	strb	r6, [r4, #29]
 8004cfc:	f7ff fef9 	bl	8004af2 <hardware_safe_for_i2c>
 8004d00:	2800      	cmp	r0, #0
 8004d02:	d105      	bne.n	8004d10 <is31fl3236a_initialize+0x56>
 8004d04:	0020      	movs	r0, r4
 8004d06:	f7ff ff1c 	bl	8004b42 <force_off_and_latch_fault>
 8004d0a:	2000      	movs	r0, #0
 8004d0c:	b00b      	add	sp, #44	@ 0x2c
 8004d0e:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8004d10:	2224      	movs	r2, #36	@ 0x24
 8004d12:	2100      	movs	r1, #0
 8004d14:	a801      	add	r0, sp, #4
 8004d16:	f7fb fa54 	bl	80001c2 <memset>
 8004d1a:	2200      	movs	r2, #0
 8004d1c:	214f      	movs	r1, #79	@ 0x4f
 8004d1e:	0020      	movs	r0, r4
 8004d20:	f7ff fef2 	bl	8004b08 <write_register>
 8004d24:	2800      	cmp	r0, #0
 8004d26:	d0ed      	beq.n	8004d04 <is31fl3236a_initialize+0x4a>
 8004d28:	2200      	movs	r2, #0
 8004d2a:	0020      	movs	r0, r4
 8004d2c:	0011      	movs	r1, r2
 8004d2e:	f7ff feeb 	bl	8004b08 <write_register>
 8004d32:	2800      	cmp	r0, #0
 8004d34:	d0e6      	beq.n	8004d04 <is31fl3236a_initialize+0x4a>
 8004d36:	2201      	movs	r2, #1
 8004d38:	214a      	movs	r1, #74	@ 0x4a
 8004d3a:	0020      	movs	r0, r4
 8004d3c:	f7ff fee4 	bl	8004b08 <write_register>
 8004d40:	2800      	cmp	r0, #0
 8004d42:	d0df      	beq.n	8004d04 <is31fl3236a_initialize+0x4a>
 8004d44:	0032      	movs	r2, r6
 8004d46:	214b      	movs	r1, #75	@ 0x4b
 8004d48:	0020      	movs	r0, r4
 8004d4a:	f7ff fedd 	bl	8004b08 <write_register>
 8004d4e:	2800      	cmp	r0, #0
 8004d50:	d0d8      	beq.n	8004d04 <is31fl3236a_initialize+0x4a>
 8004d52:	2101      	movs	r1, #1
 8004d54:	0020      	movs	r0, r4
 8004d56:	aa01      	add	r2, sp, #4
 8004d58:	f7ff fee1 	bl	8004b1e <write_bank>
 8004d5c:	2800      	cmp	r0, #0
 8004d5e:	d0d1      	beq.n	8004d04 <is31fl3236a_initialize+0x4a>
 8004d60:	2126      	movs	r1, #38	@ 0x26
 8004d62:	0020      	movs	r0, r4
 8004d64:	aa01      	add	r2, sp, #4
 8004d66:	f7ff feda 	bl	8004b1e <write_bank>
 8004d6a:	2800      	cmp	r0, #0
 8004d6c:	d0ca      	beq.n	8004d04 <is31fl3236a_initialize+0x4a>
 8004d6e:	2200      	movs	r2, #0
 8004d70:	2125      	movs	r1, #37	@ 0x25
 8004d72:	0020      	movs	r0, r4
 8004d74:	f7ff fec8 	bl	8004b08 <write_register>
 8004d78:	2800      	cmp	r0, #0
 8004d7a:	d0c3      	beq.n	8004d04 <is31fl3236a_initialize+0x4a>
 8004d7c:	2301      	movs	r3, #1
 8004d7e:	77a3      	strb	r3, [r4, #30]
 8004d80:	e7c4      	b.n	8004d0c <is31fl3236a_initialize+0x52>

08004d82 <is31fl3236a_write_frame>:
 8004d82:	b570      	push	{r4, r5, r6, lr}
 8004d84:	0004      	movs	r4, r0
 8004d86:	000e      	movs	r6, r1
 8004d88:	0015      	movs	r5, r2
 8004d8a:	2800      	cmp	r0, #0
 8004d8c:	d101      	bne.n	8004d92 <is31fl3236a_write_frame+0x10>
 8004d8e:	2000      	movs	r0, #0
 8004d90:	bd70      	pop	{r4, r5, r6, pc}
 8004d92:	7f80      	ldrb	r0, [r0, #30]
 8004d94:	2800      	cmp	r0, #0
 8004d96:	d0fb      	beq.n	8004d90 <is31fl3236a_write_frame+0xe>
 8004d98:	1ca3      	adds	r3, r4, #2
 8004d9a:	7fd8      	ldrb	r0, [r3, #31]
 8004d9c:	2800      	cmp	r0, #0
 8004d9e:	d1f6      	bne.n	8004d8e <is31fl3236a_write_frame+0xc>
 8004da0:	1c63      	adds	r3, r4, #1
 8004da2:	7fdb      	ldrb	r3, [r3, #31]
 8004da4:	4283      	cmp	r3, r0
 8004da6:	d1f3      	bne.n	8004d90 <is31fl3236a_write_frame+0xe>
 8004da8:	77e3      	strb	r3, [r4, #31]
 8004daa:	4281      	cmp	r1, r0
 8004dac:	d0ef      	beq.n	8004d8e <is31fl3236a_write_frame+0xc>
 8004dae:	4282      	cmp	r2, r0
 8004db0:	d0ed      	beq.n	8004d8e <is31fl3236a_write_frame+0xc>
 8004db2:	0020      	movs	r0, r4
 8004db4:	f7ff fe9d 	bl	8004af2 <hardware_safe_for_i2c>
 8004db8:	002a      	movs	r2, r5
 8004dba:	002b      	movs	r3, r5
 8004dbc:	3224      	adds	r2, #36	@ 0x24
 8004dbe:	2800      	cmp	r0, #0
 8004dc0:	d103      	bne.n	8004dca <is31fl3236a_write_frame+0x48>
 8004dc2:	0020      	movs	r0, r4
 8004dc4:	f7ff febd 	bl	8004b42 <force_off_and_latch_fault>
 8004dc8:	e7e1      	b.n	8004d8e <is31fl3236a_write_frame+0xc>
 8004dca:	7819      	ldrb	r1, [r3, #0]
 8004dcc:	2907      	cmp	r1, #7
 8004dce:	d8de      	bhi.n	8004d8e <is31fl3236a_write_frame+0xc>
 8004dd0:	3301      	adds	r3, #1
 8004dd2:	4293      	cmp	r3, r2
 8004dd4:	d1f9      	bne.n	8004dca <is31fl3236a_write_frame+0x48>
 8004dd6:	0032      	movs	r2, r6
 8004dd8:	2101      	movs	r1, #1
 8004dda:	0020      	movs	r0, r4
 8004ddc:	f7ff fe9f 	bl	8004b1e <write_bank>
 8004de0:	2800      	cmp	r0, #0
 8004de2:	d0ee      	beq.n	8004dc2 <is31fl3236a_write_frame+0x40>
 8004de4:	002a      	movs	r2, r5
 8004de6:	2126      	movs	r1, #38	@ 0x26
 8004de8:	0020      	movs	r0, r4
 8004dea:	f7ff fe98 	bl	8004b1e <write_bank>
 8004dee:	2800      	cmp	r0, #0
 8004df0:	d0e7      	beq.n	8004dc2 <is31fl3236a_write_frame+0x40>
 8004df2:	2200      	movs	r2, #0
 8004df4:	2125      	movs	r1, #37	@ 0x25
 8004df6:	0020      	movs	r0, r4
 8004df8:	f7ff fe86 	bl	8004b08 <write_register>
 8004dfc:	2800      	cmp	r0, #0
 8004dfe:	d0e0      	beq.n	8004dc2 <is31fl3236a_write_frame+0x40>
 8004e00:	2301      	movs	r3, #1
 8004e02:	77e3      	strb	r3, [r4, #31]
 8004e04:	e7c4      	b.n	8004d90 <is31fl3236a_write_frame+0xe>

08004e06 <is31fl3236a_enable_outputs>:
 8004e06:	b570      	push	{r4, r5, r6, lr}
 8004e08:	1e05      	subs	r5, r0, #0
 8004e0a:	d006      	beq.n	8004e1a <is31fl3236a_enable_outputs+0x14>
 8004e0c:	7f84      	ldrb	r4, [r0, #30]
 8004e0e:	2c00      	cmp	r4, #0
 8004e10:	d004      	beq.n	8004e1c <is31fl3236a_enable_outputs+0x16>
 8004e12:	1c83      	adds	r3, r0, #2
 8004e14:	7fde      	ldrb	r6, [r3, #31]
 8004e16:	2e00      	cmp	r6, #0
 8004e18:	d002      	beq.n	8004e20 <is31fl3236a_enable_outputs+0x1a>
 8004e1a:	2400      	movs	r4, #0
 8004e1c:	0020      	movs	r0, r4
 8004e1e:	bd70      	pop	{r4, r5, r6, pc}
 8004e20:	7fc4      	ldrb	r4, [r0, #31]
 8004e22:	42b4      	cmp	r4, r6
 8004e24:	d0fa      	beq.n	8004e1c <is31fl3236a_enable_outputs+0x16>
 8004e26:	f7ff fe64 	bl	8004af2 <hardware_safe_for_i2c>
 8004e2a:	0004      	movs	r4, r0
 8004e2c:	42b0      	cmp	r0, r6
 8004e2e:	d0f5      	beq.n	8004e1c <is31fl3236a_enable_outputs+0x16>
 8004e30:	692b      	ldr	r3, [r5, #16]
 8004e32:	6828      	ldr	r0, [r5, #0]
 8004e34:	4798      	blx	r3
 8004e36:	0004      	movs	r4, r0
 8004e38:	42b0      	cmp	r0, r6
 8004e3a:	d0ef      	beq.n	8004e1c <is31fl3236a_enable_outputs+0x16>
 8004e3c:	0032      	movs	r2, r6
 8004e3e:	214a      	movs	r1, #74	@ 0x4a
 8004e40:	0028      	movs	r0, r5
 8004e42:	f7ff fe61 	bl	8004b08 <write_register>
 8004e46:	42b0      	cmp	r0, r6
 8004e48:	d103      	bne.n	8004e52 <is31fl3236a_enable_outputs+0x4c>
 8004e4a:	0028      	movs	r0, r5
 8004e4c:	f7ff fe79 	bl	8004b42 <force_off_and_latch_fault>
 8004e50:	e7e3      	b.n	8004e1a <is31fl3236a_enable_outputs+0x14>
 8004e52:	2201      	movs	r2, #1
 8004e54:	0031      	movs	r1, r6
 8004e56:	0028      	movs	r0, r5
 8004e58:	f7ff fe56 	bl	8004b08 <write_register>
 8004e5c:	2800      	cmp	r0, #0
 8004e5e:	d0f4      	beq.n	8004e4a <is31fl3236a_enable_outputs+0x44>
 8004e60:	0031      	movs	r1, r6
 8004e62:	696b      	ldr	r3, [r5, #20]
 8004e64:	6828      	ldr	r0, [r5, #0]
 8004e66:	4798      	blx	r3
 8004e68:	1e04      	subs	r4, r0, #0
 8004e6a:	d0ee      	beq.n	8004e4a <is31fl3236a_enable_outputs+0x44>
 8004e6c:	68ab      	ldr	r3, [r5, #8]
 8004e6e:	6828      	ldr	r0, [r5, #0]
 8004e70:	4798      	blx	r3
 8004e72:	2800      	cmp	r0, #0
 8004e74:	d1e9      	bne.n	8004e4a <is31fl3236a_enable_outputs+0x44>
 8004e76:	2301      	movs	r3, #1
 8004e78:	3501      	adds	r5, #1
 8004e7a:	77eb      	strb	r3, [r5, #31]
 8004e7c:	e7ce      	b.n	8004e1c <is31fl3236a_enable_outputs+0x16>

08004e7e <is31fl3236a_disable_outputs>:
 8004e7e:	b570      	push	{r4, r5, r6, lr}
 8004e80:	1e04      	subs	r4, r0, #0
 8004e82:	d006      	beq.n	8004e92 <is31fl3236a_disable_outputs+0x14>
 8004e84:	7f85      	ldrb	r5, [r0, #30]
 8004e86:	2d00      	cmp	r5, #0
 8004e88:	d004      	beq.n	8004e94 <is31fl3236a_disable_outputs+0x16>
 8004e8a:	1c83      	adds	r3, r0, #2
 8004e8c:	7fde      	ldrb	r6, [r3, #31]
 8004e8e:	2e00      	cmp	r6, #0
 8004e90:	d002      	beq.n	8004e98 <is31fl3236a_disable_outputs+0x1a>
 8004e92:	2500      	movs	r5, #0
 8004e94:	0028      	movs	r0, r5
 8004e96:	bd70      	pop	{r4, r5, r6, pc}
 8004e98:	6943      	ldr	r3, [r0, #20]
 8004e9a:	2101      	movs	r1, #1
 8004e9c:	6800      	ldr	r0, [r0, #0]
 8004e9e:	4798      	blx	r3
 8004ea0:	42b0      	cmp	r0, r6
 8004ea2:	d103      	bne.n	8004eac <is31fl3236a_disable_outputs+0x2e>
 8004ea4:	0020      	movs	r0, r4
 8004ea6:	f7ff fe4c 	bl	8004b42 <force_off_and_latch_fault>
 8004eaa:	e7f2      	b.n	8004e92 <is31fl3236a_disable_outputs+0x14>
 8004eac:	68a3      	ldr	r3, [r4, #8]
 8004eae:	6820      	ldr	r0, [r4, #0]
 8004eb0:	4798      	blx	r3
 8004eb2:	1e05      	subs	r5, r0, #0
 8004eb4:	d0f6      	beq.n	8004ea4 <is31fl3236a_disable_outputs+0x26>
 8004eb6:	1c63      	adds	r3, r4, #1
 8004eb8:	77de      	strb	r6, [r3, #31]
 8004eba:	6820      	ldr	r0, [r4, #0]
 8004ebc:	68e3      	ldr	r3, [r4, #12]
 8004ebe:	4798      	blx	r3
 8004ec0:	2800      	cmp	r0, #0
 8004ec2:	d0e7      	beq.n	8004e94 <is31fl3236a_disable_outputs+0x16>
 8004ec4:	0032      	movs	r2, r6
 8004ec6:	0031      	movs	r1, r6
 8004ec8:	0020      	movs	r0, r4
 8004eca:	f7ff fe1d 	bl	8004b08 <write_register>
 8004ece:	2800      	cmp	r0, #0
 8004ed0:	d0e8      	beq.n	8004ea4 <is31fl3236a_disable_outputs+0x26>
 8004ed2:	2201      	movs	r2, #1
 8004ed4:	214a      	movs	r1, #74	@ 0x4a
 8004ed6:	0020      	movs	r0, r4
 8004ed8:	f7ff fe16 	bl	8004b08 <write_register>
 8004edc:	1e05      	subs	r5, r0, #0
 8004ede:	d1d9      	bne.n	8004e94 <is31fl3236a_disable_outputs+0x16>
 8004ee0:	e7e0      	b.n	8004ea4 <is31fl3236a_disable_outputs+0x26>

08004ee2 <is31fl3236a_enable_group>:
 8004ee2:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 8004ee4:	2301      	movs	r3, #1
 8004ee6:	001a      	movs	r2, r3
 8004ee8:	0005      	movs	r5, r0
 8004eea:	000e      	movs	r6, r1
 8004eec:	f7ff fe4a 	bl	8004b84 <group_members_valid>
 8004ef0:	1e04      	subs	r4, r0, #0
 8004ef2:	d00b      	beq.n	8004f0c <is31fl3236a_enable_group+0x2a>
 8004ef4:	0028      	movs	r0, r5
 8004ef6:	f7ff fdfc 	bl	8004af2 <hardware_safe_for_i2c>
 8004efa:	1e04      	subs	r4, r0, #0
 8004efc:	d006      	beq.n	8004f0c <is31fl3236a_enable_group+0x2a>
 8004efe:	692b      	ldr	r3, [r5, #16]
 8004f00:	6828      	ldr	r0, [r5, #0]
 8004f02:	4798      	blx	r3
 8004f04:	2700      	movs	r7, #0
 8004f06:	0004      	movs	r4, r0
 8004f08:	42b8      	cmp	r0, r7
 8004f0a:	d118      	bne.n	8004f3e <is31fl3236a_enable_group+0x5c>
 8004f0c:	0020      	movs	r0, r4
 8004f0e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 8004f10:	2424      	movs	r4, #36	@ 0x24
 8004f12:	437c      	muls	r4, r7
 8004f14:	2200      	movs	r2, #0
 8004f16:	214a      	movs	r1, #74	@ 0x4a
 8004f18:	1928      	adds	r0, r5, r4
 8004f1a:	f7ff fdf5 	bl	8004b08 <write_register>
 8004f1e:	2800      	cmp	r0, #0
 8004f20:	d105      	bne.n	8004f2e <is31fl3236a_enable_group+0x4c>
 8004f22:	0031      	movs	r1, r6
 8004f24:	0028      	movs	r0, r5
 8004f26:	f7ff fe9e 	bl	8004c66 <group_latch_fault>
 8004f2a:	2400      	movs	r4, #0
 8004f2c:	e7ee      	b.n	8004f0c <is31fl3236a_enable_group+0x2a>
 8004f2e:	2201      	movs	r2, #1
 8004f30:	2100      	movs	r1, #0
 8004f32:	1928      	adds	r0, r5, r4
 8004f34:	f7ff fde8 	bl	8004b08 <write_register>
 8004f38:	2800      	cmp	r0, #0
 8004f3a:	d0f2      	beq.n	8004f22 <is31fl3236a_enable_group+0x40>
 8004f3c:	3701      	adds	r7, #1
 8004f3e:	42be      	cmp	r6, r7
 8004f40:	d1e6      	bne.n	8004f10 <is31fl3236a_enable_group+0x2e>
 8004f42:	0028      	movs	r0, r5
 8004f44:	f7ff fdd5 	bl	8004af2 <hardware_safe_for_i2c>
 8004f48:	2800      	cmp	r0, #0
 8004f4a:	d0ea      	beq.n	8004f22 <is31fl3236a_enable_group+0x40>
 8004f4c:	692b      	ldr	r3, [r5, #16]
 8004f4e:	6828      	ldr	r0, [r5, #0]
 8004f50:	4798      	blx	r3
 8004f52:	2800      	cmp	r0, #0
 8004f54:	d0e5      	beq.n	8004f22 <is31fl3236a_enable_group+0x40>
 8004f56:	2100      	movs	r1, #0
 8004f58:	696b      	ldr	r3, [r5, #20]
 8004f5a:	6828      	ldr	r0, [r5, #0]
 8004f5c:	4798      	blx	r3
 8004f5e:	1e04      	subs	r4, r0, #0
 8004f60:	d0df      	beq.n	8004f22 <is31fl3236a_enable_group+0x40>
 8004f62:	68ab      	ldr	r3, [r5, #8]
 8004f64:	6828      	ldr	r0, [r5, #0]
 8004f66:	4798      	blx	r3
 8004f68:	2800      	cmp	r0, #0
 8004f6a:	d1da      	bne.n	8004f22 <is31fl3236a_enable_group+0x40>
 8004f6c:	2324      	movs	r3, #36	@ 0x24
 8004f6e:	4373      	muls	r3, r6
 8004f70:	002a      	movs	r2, r5
 8004f72:	3320      	adds	r3, #32
 8004f74:	18ed      	adds	r5, r5, r3
 8004f76:	2301      	movs	r3, #1
 8004f78:	3220      	adds	r2, #32
 8004f7a:	4295      	cmp	r5, r2
 8004f7c:	d0c6      	beq.n	8004f0c <is31fl3236a_enable_group+0x2a>
 8004f7e:	7013      	strb	r3, [r2, #0]
 8004f80:	3224      	adds	r2, #36	@ 0x24
 8004f82:	e7fa      	b.n	8004f7a <is31fl3236a_enable_group+0x98>

08004f84 <is31fl3236a_disable_group>:
 8004f84:	2300      	movs	r3, #0
 8004f86:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 8004f88:	001a      	movs	r2, r3
 8004f8a:	0004      	movs	r4, r0
 8004f8c:	000f      	movs	r7, r1
 8004f8e:	f7ff fdf9 	bl	8004b84 <group_members_valid>
 8004f92:	1e05      	subs	r5, r0, #0
 8004f94:	d038      	beq.n	8005008 <is31fl3236a_disable_group+0x84>
 8004f96:	2101      	movs	r1, #1
 8004f98:	6963      	ldr	r3, [r4, #20]
 8004f9a:	6820      	ldr	r0, [r4, #0]
 8004f9c:	4798      	blx	r3
 8004f9e:	2800      	cmp	r0, #0
 8004fa0:	d02d      	beq.n	8004ffe <is31fl3236a_disable_group+0x7a>
 8004fa2:	68a3      	ldr	r3, [r4, #8]
 8004fa4:	6820      	ldr	r0, [r4, #0]
 8004fa6:	4798      	blx	r3
 8004fa8:	1e05      	subs	r5, r0, #0
 8004faa:	d028      	beq.n	8004ffe <is31fl3236a_disable_group+0x7a>
 8004fac:	2224      	movs	r2, #36	@ 0x24
 8004fae:	0023      	movs	r3, r4
 8004fb0:	0026      	movs	r6, r4
 8004fb2:	2100      	movs	r1, #0
 8004fb4:	437a      	muls	r2, r7
 8004fb6:	9200      	str	r2, [sp, #0]
 8004fb8:	3220      	adds	r2, #32
 8004fba:	3320      	adds	r3, #32
 8004fbc:	18a2      	adds	r2, r4, r2
 8004fbe:	4293      	cmp	r3, r2
 8004fc0:	d10b      	bne.n	8004fda <is31fl3236a_disable_group+0x56>
 8004fc2:	68e3      	ldr	r3, [r4, #12]
 8004fc4:	6820      	ldr	r0, [r4, #0]
 8004fc6:	4798      	blx	r3
 8004fc8:	9001      	str	r0, [sp, #4]
 8004fca:	2800      	cmp	r0, #0
 8004fcc:	d01c      	beq.n	8005008 <is31fl3236a_disable_group+0x84>
 8004fce:	9b00      	ldr	r3, [sp, #0]
 8004fd0:	18e5      	adds	r5, r4, r3
 8004fd2:	42b5      	cmp	r5, r6
 8004fd4:	d104      	bne.n	8004fe0 <is31fl3236a_disable_group+0x5c>
 8004fd6:	9d01      	ldr	r5, [sp, #4]
 8004fd8:	e016      	b.n	8005008 <is31fl3236a_disable_group+0x84>
 8004fda:	7019      	strb	r1, [r3, #0]
 8004fdc:	3324      	adds	r3, #36	@ 0x24
 8004fde:	e7ee      	b.n	8004fbe <is31fl3236a_disable_group+0x3a>
 8004fe0:	2200      	movs	r2, #0
 8004fe2:	0030      	movs	r0, r6
 8004fe4:	0011      	movs	r1, r2
 8004fe6:	f7ff fd8f 	bl	8004b08 <write_register>
 8004fea:	2800      	cmp	r0, #0
 8004fec:	d007      	beq.n	8004ffe <is31fl3236a_disable_group+0x7a>
 8004fee:	0030      	movs	r0, r6
 8004ff0:	2201      	movs	r2, #1
 8004ff2:	214a      	movs	r1, #74	@ 0x4a
 8004ff4:	f7ff fd88 	bl	8004b08 <write_register>
 8004ff8:	3624      	adds	r6, #36	@ 0x24
 8004ffa:	2800      	cmp	r0, #0
 8004ffc:	d1e9      	bne.n	8004fd2 <is31fl3236a_disable_group+0x4e>
 8004ffe:	0039      	movs	r1, r7
 8005000:	0020      	movs	r0, r4
 8005002:	f7ff fe30 	bl	8004c66 <group_latch_fault>
 8005006:	2500      	movs	r5, #0
 8005008:	0028      	movs	r0, r5
 800500a:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}

0800500c <is31fl3236a_stage_group_frame>:
 800500c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 800500e:	0004      	movs	r4, r0
 8005010:	000d      	movs	r5, r1
 8005012:	9200      	str	r2, [sp, #0]
 8005014:	9301      	str	r3, [sp, #4]
 8005016:	2a00      	cmp	r2, #0
 8005018:	d016      	beq.n	8005048 <is31fl3236a_stage_group_frame+0x3c>
 800501a:	9b01      	ldr	r3, [sp, #4]
 800501c:	2b00      	cmp	r3, #0
 800501e:	d013      	beq.n	8005048 <is31fl3236a_stage_group_frame+0x3c>
 8005020:	2301      	movs	r3, #1
 8005022:	2200      	movs	r2, #0
 8005024:	f7ff fdae 	bl	8004b84 <group_members_valid>
 8005028:	2800      	cmp	r0, #0
 800502a:	d00e      	beq.n	800504a <is31fl3236a_stage_group_frame+0x3e>
 800502c:	0020      	movs	r0, r4
 800502e:	f7ff fd60 	bl	8004af2 <hardware_safe_for_i2c>
 8005032:	2800      	cmp	r0, #0
 8005034:	d004      	beq.n	8005040 <is31fl3236a_stage_group_frame+0x34>
 8005036:	68a3      	ldr	r3, [r4, #8]
 8005038:	6820      	ldr	r0, [r4, #0]
 800503a:	4798      	blx	r3
 800503c:	2800      	cmp	r0, #0
 800503e:	d105      	bne.n	800504c <is31fl3236a_stage_group_frame+0x40>
 8005040:	0029      	movs	r1, r5
 8005042:	0020      	movs	r0, r4
 8005044:	f7ff fe0f 	bl	8004c66 <group_latch_fault>
 8005048:	2000      	movs	r0, #0
 800504a:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 800504c:	6923      	ldr	r3, [r4, #16]
 800504e:	6820      	ldr	r0, [r4, #0]
 8005050:	4798      	blx	r3
 8005052:	2600      	movs	r6, #0
 8005054:	2724      	movs	r7, #36	@ 0x24
 8005056:	42b0      	cmp	r0, r6
 8005058:	d125      	bne.n	80050a6 <is31fl3236a_stage_group_frame+0x9a>
 800505a:	003b      	movs	r3, r7
 800505c:	0002      	movs	r2, r0
 800505e:	436b      	muls	r3, r5
 8005060:	18e3      	adds	r3, r4, r3
 8005062:	42a3      	cmp	r3, r4
 8005064:	d0f1      	beq.n	800504a <is31fl3236a_stage_group_frame+0x3e>
 8005066:	77e2      	strb	r2, [r4, #31]
 8005068:	3424      	adds	r4, #36	@ 0x24
 800506a:	e7fa      	b.n	8005062 <is31fl3236a_stage_group_frame+0x56>
 800506c:	f7ff fd41 	bl	8004af2 <hardware_safe_for_i2c>
 8005070:	2800      	cmp	r0, #0
 8005072:	d0e5      	beq.n	8005040 <is31fl3236a_stage_group_frame+0x34>
 8005074:	6923      	ldr	r3, [r4, #16]
 8005076:	6820      	ldr	r0, [r4, #0]
 8005078:	4798      	blx	r3
 800507a:	2800      	cmp	r0, #0
 800507c:	d107      	bne.n	800508e <is31fl3236a_stage_group_frame+0x82>
 800507e:	0003      	movs	r3, r0
 8005080:	437d      	muls	r5, r7
 8005082:	1965      	adds	r5, r4, r5
 8005084:	77e3      	strb	r3, [r4, #31]
 8005086:	3424      	adds	r4, #36	@ 0x24
 8005088:	42ac      	cmp	r4, r5
 800508a:	d1fb      	bne.n	8005084 <is31fl3236a_stage_group_frame+0x78>
 800508c:	e7dd      	b.n	800504a <is31fl3236a_stage_group_frame+0x3e>
 800508e:	0038      	movs	r0, r7
 8005090:	4370      	muls	r0, r6
 8005092:	9b01      	ldr	r3, [sp, #4]
 8005094:	181a      	adds	r2, r3, r0
 8005096:	9b00      	ldr	r3, [sp, #0]
 8005098:	1819      	adds	r1, r3, r0
 800509a:	1820      	adds	r0, r4, r0
 800509c:	f7ff fe71 	bl	8004d82 <is31fl3236a_write_frame>
 80050a0:	2800      	cmp	r0, #0
 80050a2:	d0cd      	beq.n	8005040 <is31fl3236a_stage_group_frame+0x34>
 80050a4:	3601      	adds	r6, #1
 80050a6:	0020      	movs	r0, r4
 80050a8:	42b5      	cmp	r5, r6
 80050aa:	d1df      	bne.n	800506c <is31fl3236a_stage_group_frame+0x60>
 80050ac:	f7ff fd21 	bl	8004af2 <hardware_safe_for_i2c>
 80050b0:	2800      	cmp	r0, #0
 80050b2:	d0c5      	beq.n	8005040 <is31fl3236a_stage_group_frame+0x34>
 80050b4:	6923      	ldr	r3, [r4, #16]
 80050b6:	6820      	ldr	r0, [r4, #0]
 80050b8:	4798      	blx	r3
 80050ba:	2800      	cmp	r0, #0
 80050bc:	d1c5      	bne.n	800504a <is31fl3236a_stage_group_frame+0x3e>
 80050be:	2324      	movs	r3, #36	@ 0x24
 80050c0:	0002      	movs	r2, r0
 80050c2:	436b      	muls	r3, r5
 80050c4:	18e3      	adds	r3, r4, r3
 80050c6:	429c      	cmp	r4, r3
 80050c8:	d0bf      	beq.n	800504a <is31fl3236a_stage_group_frame+0x3e>
 80050ca:	77e2      	strb	r2, [r4, #31]
 80050cc:	3424      	adds	r4, #36	@ 0x24
 80050ce:	e7fa      	b.n	80050c6 <is31fl3236a_stage_group_frame+0xba>

080050d0 <is31fl3236a_update_group>:
 80050d0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 80050d2:	0004      	movs	r4, r0
 80050d4:	000d      	movs	r5, r1
 80050d6:	0016      	movs	r6, r2
 80050d8:	001f      	movs	r7, r3
 80050da:	2a00      	cmp	r2, #0
 80050dc:	d015      	beq.n	800510a <is31fl3236a_update_group+0x3a>
 80050de:	2b00      	cmp	r3, #0
 80050e0:	d013      	beq.n	800510a <is31fl3236a_update_group+0x3a>
 80050e2:	2300      	movs	r3, #0
 80050e4:	001a      	movs	r2, r3
 80050e6:	f7ff fd4d 	bl	8004b84 <group_members_valid>
 80050ea:	2800      	cmp	r0, #0
 80050ec:	d00e      	beq.n	800510c <is31fl3236a_update_group+0x3c>
 80050ee:	2300      	movs	r3, #0
 80050f0:	0022      	movs	r2, r4
 80050f2:	0019      	movs	r1, r3
 80050f4:	3220      	adds	r2, #32
 80050f6:	42ab      	cmp	r3, r5
 80050f8:	d109      	bne.n	800510e <is31fl3236a_update_group+0x3e>
 80050fa:	2900      	cmp	r1, #0
 80050fc:	d032      	beq.n	8005164 <is31fl3236a_update_group+0x94>
 80050fe:	2800      	cmp	r0, #0
 8005100:	d10e      	bne.n	8005120 <is31fl3236a_update_group+0x50>
 8005102:	0029      	movs	r1, r5
 8005104:	0020      	movs	r0, r4
 8005106:	f7ff fdae 	bl	8004c66 <group_latch_fault>
 800510a:	2000      	movs	r0, #0
 800510c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 800510e:	2900      	cmp	r1, #0
 8005110:	d100      	bne.n	8005114 <is31fl3236a_update_group+0x44>
 8005112:	7811      	ldrb	r1, [r2, #0]
 8005114:	2800      	cmp	r0, #0
 8005116:	d000      	beq.n	800511a <is31fl3236a_update_group+0x4a>
 8005118:	7810      	ldrb	r0, [r2, #0]
 800511a:	3301      	adds	r3, #1
 800511c:	3224      	adds	r2, #36	@ 0x24
 800511e:	e7ea      	b.n	80050f6 <is31fl3236a_update_group+0x26>
 8005120:	0029      	movs	r1, r5
 8005122:	0020      	movs	r0, r4
 8005124:	f7ff ff2e 	bl	8004f84 <is31fl3236a_disable_group>
 8005128:	2800      	cmp	r0, #0
 800512a:	d0ef      	beq.n	800510c <is31fl3236a_update_group+0x3c>
 800512c:	003b      	movs	r3, r7
 800512e:	0032      	movs	r2, r6
 8005130:	0029      	movs	r1, r5
 8005132:	0020      	movs	r0, r4
 8005134:	f7ff ff6a 	bl	800500c <is31fl3236a_stage_group_frame>
 8005138:	2800      	cmp	r0, #0
 800513a:	d0e7      	beq.n	800510c <is31fl3236a_update_group+0x3c>
 800513c:	0029      	movs	r1, r5
 800513e:	0020      	movs	r0, r4
 8005140:	f7ff fecf 	bl	8004ee2 <is31fl3236a_enable_group>
 8005144:	2800      	cmp	r0, #0
 8005146:	d1e1      	bne.n	800510c <is31fl3236a_update_group+0x3c>
 8005148:	2224      	movs	r2, #36	@ 0x24
 800514a:	0023      	movs	r3, r4
 800514c:	436a      	muls	r2, r5
 800514e:	321f      	adds	r2, #31
 8005150:	331f      	adds	r3, #31
 8005152:	18a4      	adds	r4, r4, r2
 8005154:	42a3      	cmp	r3, r4
 8005156:	d0d9      	beq.n	800510c <is31fl3236a_update_group+0x3c>
 8005158:	789a      	ldrb	r2, [r3, #2]
 800515a:	2a00      	cmp	r2, #0
 800515c:	d100      	bne.n	8005160 <is31fl3236a_update_group+0x90>
 800515e:	701a      	strb	r2, [r3, #0]
 8005160:	3324      	adds	r3, #36	@ 0x24
 8005162:	e7f7      	b.n	8005154 <is31fl3236a_update_group+0x84>
 8005164:	68a3      	ldr	r3, [r4, #8]
 8005166:	6820      	ldr	r0, [r4, #0]
 8005168:	4798      	blx	r3
 800516a:	2800      	cmp	r0, #0
 800516c:	d1de      	bne.n	800512c <is31fl3236a_update_group+0x5c>
 800516e:	e7c8      	b.n	8005102 <is31fl3236a_update_group+0x32>

08005170 <is31fl3236a_is_ready>:
 8005170:	2800      	cmp	r0, #0
 8005172:	d103      	bne.n	800517c <is31fl3236a_is_ready+0xc>
 8005174:	2000      	movs	r0, #0
 8005176:	2301      	movs	r3, #1
 8005178:	4018      	ands	r0, r3
 800517a:	4770      	bx	lr
 800517c:	7f83      	ldrb	r3, [r0, #30]
 800517e:	2b00      	cmp	r3, #0
 8005180:	d0f8      	beq.n	8005174 <is31fl3236a_is_ready+0x4>
 8005182:	7fc3      	ldrb	r3, [r0, #31]
 8005184:	2b00      	cmp	r3, #0
 8005186:	d0f5      	beq.n	8005174 <is31fl3236a_is_ready+0x4>
 8005188:	3002      	adds	r0, #2
 800518a:	7fc3      	ldrb	r3, [r0, #31]
 800518c:	2001      	movs	r0, #1
 800518e:	4058      	eors	r0, r3
 8005190:	e7f1      	b.n	8005176 <is31fl3236a_is_ready+0x6>
	...

08005194 <backend_set_power_request>:
 8005194:	b570      	push	{r4, r5, r6, lr}
 8005196:	0004      	movs	r4, r0
 8005198:	000d      	movs	r5, r1
 800519a:	2800      	cmp	r0, #0
 800519c:	d101      	bne.n	80051a2 <backend_set_power_request+0xe>
 800519e:	2000      	movs	r0, #0
 80051a0:	bd70      	pop	{r4, r5, r6, pc}
 80051a2:	0003      	movs	r3, r0
 80051a4:	33ac      	adds	r3, #172	@ 0xac
 80051a6:	681a      	ldr	r2, [r3, #0]
 80051a8:	2a00      	cmp	r2, #0
 80051aa:	d0f8      	beq.n	800519e <backend_set_power_request+0xa>
 80051ac:	6898      	ldr	r0, [r3, #8]
 80051ae:	4790      	blx	r2
 80051b0:	2800      	cmp	r0, #0
 80051b2:	d0f5      	beq.n	80051a0 <backend_set_power_request+0xc>
 80051b4:	239c      	movs	r3, #156	@ 0x9c
 80051b6:	009b      	lsls	r3, r3, #2
 80051b8:	54e5      	strb	r5, [r4, r3]
 80051ba:	e7f1      	b.n	80051a0 <backend_set_power_request+0xc>

080051bc <backend_power_good>:
 80051bc:	b510      	push	{r4, lr}
 80051be:	2800      	cmp	r0, #0
 80051c0:	d103      	bne.n	80051ca <backend_power_good+0xe>
 80051c2:	2000      	movs	r0, #0
 80051c4:	2301      	movs	r3, #1
 80051c6:	4018      	ands	r0, r3
 80051c8:	bd10      	pop	{r4, pc}
 80051ca:	0003      	movs	r3, r0
 80051cc:	33b0      	adds	r3, #176	@ 0xb0
 80051ce:	681b      	ldr	r3, [r3, #0]
 80051d0:	2b00      	cmp	r3, #0
 80051d2:	d0f6      	beq.n	80051c2 <backend_power_good+0x6>
 80051d4:	30b4      	adds	r0, #180	@ 0xb4
 80051d6:	6800      	ldr	r0, [r0, #0]
 80051d8:	4798      	blx	r3
 80051da:	e7f3      	b.n	80051c4 <backend_power_good+0x8>

080051dc <initialize_driver_group>:
 80051dc:	b570      	push	{r4, r5, r6, lr}
 80051de:	0005      	movs	r5, r0
 80051e0:	2400      	movs	r4, #0
 80051e2:	4b0d      	ldr	r3, [pc, #52]	@ (8005218 <initialize_driver_group+0x3c>)
 80051e4:	5ceb      	ldrb	r3, [r5, r3]
 80051e6:	42a3      	cmp	r3, r4
 80051e8:	d803      	bhi.n	80051f2 <initialize_driver_group+0x16>
 80051ea:	2001      	movs	r0, #1
 80051ec:	4b0b      	ldr	r3, [pc, #44]	@ (800521c <initialize_driver_group+0x40>)
 80051ee:	54e8      	strb	r0, [r5, r3]
 80051f0:	bd70      	pop	{r4, r5, r6, pc}
 80051f2:	2024      	movs	r0, #36	@ 0x24
 80051f4:	2199      	movs	r1, #153	@ 0x99
 80051f6:	4360      	muls	r0, r4
 80051f8:	4b09      	ldr	r3, [pc, #36]	@ (8005220 <initialize_driver_group+0x44>)
 80051fa:	0089      	lsls	r1, r1, #2
 80051fc:	192a      	adds	r2, r5, r4
 80051fe:	301c      	adds	r0, #28
 8005200:	5c52      	ldrb	r2, [r2, r1]
 8005202:	5ceb      	ldrb	r3, [r5, r3]
 8005204:	0029      	movs	r1, r5
 8005206:	1828      	adds	r0, r5, r0
 8005208:	f7ff fd57 	bl	8004cba <is31fl3236a_initialize>
 800520c:	2800      	cmp	r0, #0
 800520e:	d0ef      	beq.n	80051f0 <initialize_driver_group+0x14>
 8005210:	3401      	adds	r4, #1
 8005212:	b2e4      	uxtb	r4, r4
 8005214:	e7e5      	b.n	80051e2 <initialize_driver_group+0x6>
 8005216:	46c0      	nop			@ (mov r8, r8)
 8005218:	0000026a 	.word	0x0000026a
 800521c:	0000026e 	.word	0x0000026e
 8005220:	0000026d 	.word	0x0000026d

08005224 <backend_set_oe_n>:
 8005224:	b570      	push	{r4, r5, r6, lr}
 8005226:	1e04      	subs	r4, r0, #0
 8005228:	d01a      	beq.n	8005260 <backend_set_oe_n+0x3c>
 800522a:	4b21      	ldr	r3, [pc, #132]	@ (80052b0 <backend_set_oe_n+0x8c>)
 800522c:	5cc0      	ldrb	r0, [r0, r3]
 800522e:	2900      	cmp	r1, #0
 8005230:	d117      	bne.n	8005262 <backend_set_oe_n+0x3e>
 8005232:	4288      	cmp	r0, r1
 8005234:	d014      	beq.n	8005260 <backend_set_oe_n+0x3c>
 8005236:	4b1f      	ldr	r3, [pc, #124]	@ (80052b4 <backend_set_oe_n+0x90>)
 8005238:	5ce0      	ldrb	r0, [r4, r3]
 800523a:	4288      	cmp	r0, r1
 800523c:	d010      	beq.n	8005260 <backend_set_oe_n+0x3c>
 800523e:	3301      	adds	r3, #1
 8005240:	5ce0      	ldrb	r0, [r4, r3]
 8005242:	4288      	cmp	r0, r1
 8005244:	d00c      	beq.n	8005260 <backend_set_oe_n+0x3c>
 8005246:	0023      	movs	r3, r4
 8005248:	33b0      	adds	r3, #176	@ 0xb0
 800524a:	681a      	ldr	r2, [r3, #0]
 800524c:	6858      	ldr	r0, [r3, #4]
 800524e:	4790      	blx	r2
 8005250:	2800      	cmp	r0, #0
 8005252:	d005      	beq.n	8005260 <backend_set_oe_n+0x3c>
 8005254:	0020      	movs	r0, r4
 8005256:	4b18      	ldr	r3, [pc, #96]	@ (80052b8 <backend_set_oe_n+0x94>)
 8005258:	301c      	adds	r0, #28
 800525a:	5ce1      	ldrb	r1, [r4, r3]
 800525c:	f7ff fe41 	bl	8004ee2 <is31fl3236a_enable_group>
 8005260:	bd70      	pop	{r4, r5, r6, pc}
 8005262:	2800      	cmp	r0, #0
 8005264:	d01a      	beq.n	800529c <backend_set_oe_n+0x78>
 8005266:	4a14      	ldr	r2, [pc, #80]	@ (80052b8 <backend_set_oe_n+0x94>)
 8005268:	0023      	movs	r3, r4
 800526a:	5ca1      	ldrb	r1, [r4, r2]
 800526c:	2224      	movs	r2, #36	@ 0x24
 800526e:	2500      	movs	r5, #0
 8005270:	434a      	muls	r2, r1
 8005272:	333c      	adds	r3, #60	@ 0x3c
 8005274:	18d2      	adds	r2, r2, r3
 8005276:	4293      	cmp	r3, r2
 8005278:	d108      	bne.n	800528c <backend_set_oe_n+0x68>
 800527a:	2d00      	cmp	r5, #0
 800527c:	d00e      	beq.n	800529c <backend_set_oe_n+0x78>
 800527e:	2800      	cmp	r0, #0
 8005280:	d0ee      	beq.n	8005260 <backend_set_oe_n+0x3c>
 8005282:	0020      	movs	r0, r4
 8005284:	301c      	adds	r0, #28
 8005286:	f7ff fe7d 	bl	8004f84 <is31fl3236a_disable_group>
 800528a:	e7e9      	b.n	8005260 <backend_set_oe_n+0x3c>
 800528c:	2d00      	cmp	r5, #0
 800528e:	d100      	bne.n	8005292 <backend_set_oe_n+0x6e>
 8005290:	781d      	ldrb	r5, [r3, #0]
 8005292:	2800      	cmp	r0, #0
 8005294:	d000      	beq.n	8005298 <backend_set_oe_n+0x74>
 8005296:	7818      	ldrb	r0, [r3, #0]
 8005298:	3324      	adds	r3, #36	@ 0x24
 800529a:	e7ec      	b.n	8005276 <backend_set_oe_n+0x52>
 800529c:	2101      	movs	r1, #1
 800529e:	6963      	ldr	r3, [r4, #20]
 80052a0:	6820      	ldr	r0, [r4, #0]
 80052a2:	4798      	blx	r3
 80052a4:	2800      	cmp	r0, #0
 80052a6:	d0db      	beq.n	8005260 <backend_set_oe_n+0x3c>
 80052a8:	68a3      	ldr	r3, [r4, #8]
 80052aa:	6820      	ldr	r0, [r4, #0]
 80052ac:	4798      	blx	r3
 80052ae:	e7d7      	b.n	8005260 <backend_set_oe_n+0x3c>
 80052b0:	0000026e 	.word	0x0000026e
 80052b4:	0000026f 	.word	0x0000026f
 80052b8:	0000026a 	.word	0x0000026a

080052bc <backend_write_chip_pwm.part.0>:
 80052bc:	b5f0      	push	{r4, r5, r6, r7, lr}
 80052be:	279b      	movs	r7, #155	@ 0x9b
 80052c0:	0004      	movs	r4, r0
 80052c2:	000d      	movs	r5, r1
 80052c4:	0016      	movs	r6, r2
 80052c6:	b0cd      	sub	sp, #308	@ 0x134
 80052c8:	00bf      	lsls	r7, r7, #2
 80052ca:	2900      	cmp	r1, #0
 80052cc:	d148      	bne.n	8005360 <backend_write_chip_pwm.part.0+0xa4>
 80052ce:	30eb      	adds	r0, #235	@ 0xeb
 80052d0:	227a      	movs	r2, #122	@ 0x7a
 80052d2:	30ff      	adds	r0, #255	@ 0xff
 80052d4:	f7fa ff75 	bl	80001c2 <memset>
 80052d8:	4b32      	ldr	r3, [pc, #200]	@ (80053a4 <backend_write_chip_pwm.part.0+0xe8>)
 80052da:	55e5      	strb	r5, [r4, r7]
 80052dc:	54e5      	strb	r5, [r4, r3]
 80052de:	2318      	movs	r3, #24
 80052e0:	229a      	movs	r2, #154	@ 0x9a
 80052e2:	435d      	muls	r5, r3
 80052e4:	0092      	lsls	r2, r2, #2
 80052e6:	5aa2      	ldrh	r2, [r4, r2]
 80052e8:	1b52      	subs	r2, r2, r5
 80052ea:	429a      	cmp	r2, r3
 80052ec:	d900      	bls.n	80052f0 <backend_write_chip_pwm.part.0+0x34>
 80052ee:	001a      	movs	r2, r3
 80052f0:	0013      	movs	r3, r2
 80052f2:	2b18      	cmp	r3, #24
 80052f4:	d13a      	bne.n	800536c <backend_write_chip_pwm.part.0+0xb0>
 80052f6:	35eb      	adds	r5, #235	@ 0xeb
 80052f8:	35ff      	adds	r5, #255	@ 0xff
 80052fa:	0031      	movs	r1, r6
 80052fc:	1960      	adds	r0, r4, r5
 80052fe:	f7fa ff57 	bl	80001b0 <memcpy>
 8005302:	229b      	movs	r2, #155	@ 0x9b
 8005304:	0092      	lsls	r2, r2, #2
 8005306:	5ca3      	ldrb	r3, [r4, r2]
 8005308:	2001      	movs	r0, #1
 800530a:	3301      	adds	r3, #1
 800530c:	b2db      	uxtb	r3, r3
 800530e:	54a3      	strb	r3, [r4, r2]
 8005310:	4a25      	ldr	r2, [pc, #148]	@ (80053a8 <backend_write_chip_pwm.part.0+0xec>)
 8005312:	5ca2      	ldrb	r2, [r4, r2]
 8005314:	429a      	cmp	r2, r3
 8005316:	d127      	bne.n	8005368 <backend_write_chip_pwm.part.0+0xac>
 8005318:	af04      	add	r7, sp, #16
 800531a:	2290      	movs	r2, #144	@ 0x90
 800531c:	2100      	movs	r1, #0
 800531e:	0038      	movs	r0, r7
 8005320:	f7fa ff4f 	bl	80001c2 <memset>
 8005324:	2290      	movs	r2, #144	@ 0x90
 8005326:	2100      	movs	r1, #0
 8005328:	a828      	add	r0, sp, #160	@ 0xa0
 800532a:	f7fa ff4a 	bl	80001c2 <memset>
 800532e:	239a      	movs	r3, #154	@ 0x9a
 8005330:	009b      	lsls	r3, r3, #2
 8005332:	5ae3      	ldrh	r3, [r4, r3]
 8005334:	2500      	movs	r5, #0
 8005336:	9301      	str	r3, [sp, #4]
 8005338:	0023      	movs	r3, r4
 800533a:	33eb      	adds	r3, #235	@ 0xeb
 800533c:	33ff      	adds	r3, #255	@ 0xff
 800533e:	9302      	str	r3, [sp, #8]
 8005340:	3b7a      	subs	r3, #122	@ 0x7a
 8005342:	9303      	str	r3, [sp, #12]
 8005344:	9b01      	ldr	r3, [sp, #4]
 8005346:	429d      	cmp	r5, r3
 8005348:	d315      	bcc.n	8005376 <backend_write_chip_pwm.part.0+0xba>
 800534a:	0020      	movs	r0, r4
 800534c:	4b17      	ldr	r3, [pc, #92]	@ (80053ac <backend_write_chip_pwm.part.0+0xf0>)
 800534e:	003a      	movs	r2, r7
 8005350:	5ce1      	ldrb	r1, [r4, r3]
 8005352:	301c      	adds	r0, #28
 8005354:	ab28      	add	r3, sp, #160	@ 0xa0
 8005356:	f7ff fe59 	bl	800500c <is31fl3236a_stage_group_frame>
 800535a:	4b12      	ldr	r3, [pc, #72]	@ (80053a4 <backend_write_chip_pwm.part.0+0xe8>)
 800535c:	54e0      	strb	r0, [r4, r3]
 800535e:	e003      	b.n	8005368 <backend_write_chip_pwm.part.0+0xac>
 8005360:	5dc3      	ldrb	r3, [r0, r7]
 8005362:	428b      	cmp	r3, r1
 8005364:	d0bb      	beq.n	80052de <backend_write_chip_pwm.part.0+0x22>
 8005366:	2000      	movs	r0, #0
 8005368:	b04d      	add	sp, #308	@ 0x134
 800536a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 800536c:	5cf1      	ldrb	r1, [r6, r3]
 800536e:	2900      	cmp	r1, #0
 8005370:	d1f9      	bne.n	8005366 <backend_write_chip_pwm.part.0+0xaa>
 8005372:	3301      	adds	r3, #1
 8005374:	e7bd      	b.n	80052f2 <backend_write_chip_pwm.part.0+0x36>
 8005376:	2124      	movs	r1, #36	@ 0x24
 8005378:	0028      	movs	r0, r5
 800537a:	f000 f9b9 	bl	80056f0 <__udivsi3>
 800537e:	2124      	movs	r1, #36	@ 0x24
 8005380:	0006      	movs	r6, r0
 8005382:	0028      	movs	r0, r5
 8005384:	f000 fa3a 	bl	80057fc <__aeabi_uidivmod>
 8005388:	2324      	movs	r3, #36	@ 0x24
 800538a:	435e      	muls	r6, r3
 800538c:	9a02      	ldr	r2, [sp, #8]
 800538e:	19bb      	adds	r3, r7, r6
 8005390:	5d52      	ldrb	r2, [r2, r5]
 8005392:	545a      	strb	r2, [r3, r1]
 8005394:	ab28      	add	r3, sp, #160	@ 0xa0
 8005396:	199e      	adds	r6, r3, r6
 8005398:	9b03      	ldr	r3, [sp, #12]
 800539a:	5d5b      	ldrb	r3, [r3, r5]
 800539c:	3501      	adds	r5, #1
 800539e:	5473      	strb	r3, [r6, r1]
 80053a0:	e7d0      	b.n	8005344 <backend_write_chip_pwm.part.0+0x88>
 80053a2:	46c0      	nop			@ (mov r8, r8)
 80053a4:	0000026f 	.word	0x0000026f
 80053a8:	0000026b 	.word	0x0000026b
 80053ac:	0000026a 	.word	0x0000026a

080053b0 <backend_write_chip_pwm>:
 80053b0:	b510      	push	{r4, lr}
 80053b2:	2800      	cmp	r0, #0
 80053b4:	d102      	bne.n	80053bc <backend_write_chip_pwm+0xc>
 80053b6:	2300      	movs	r3, #0
 80053b8:	0018      	movs	r0, r3
 80053ba:	bd10      	pop	{r4, pc}
 80053bc:	2a00      	cmp	r2, #0
 80053be:	d0fa      	beq.n	80053b6 <backend_write_chip_pwm+0x6>
 80053c0:	4b05      	ldr	r3, [pc, #20]	@ (80053d8 <backend_write_chip_pwm+0x28>)
 80053c2:	5cc3      	ldrb	r3, [r0, r3]
 80053c4:	2b00      	cmp	r3, #0
 80053c6:	d0f7      	beq.n	80053b8 <backend_write_chip_pwm+0x8>
 80053c8:	4b04      	ldr	r3, [pc, #16]	@ (80053dc <backend_write_chip_pwm+0x2c>)
 80053ca:	5cc3      	ldrb	r3, [r0, r3]
 80053cc:	428b      	cmp	r3, r1
 80053ce:	d9f2      	bls.n	80053b6 <backend_write_chip_pwm+0x6>
 80053d0:	f7ff ff74 	bl	80052bc <backend_write_chip_pwm.part.0>
 80053d4:	0003      	movs	r3, r0
 80053d6:	e7ef      	b.n	80053b8 <backend_write_chip_pwm+0x8>
 80053d8:	0000026e 	.word	0x0000026e
 80053dc:	0000026b 	.word	0x0000026b

080053e0 <is31fl3236a_lamp_backend_init>:
 80053e0:	b5f0      	push	{r4, r5, r6, r7, lr}
 80053e2:	b08b      	sub	sp, #44	@ 0x2c
 80053e4:	9302      	str	r3, [sp, #8]
 80053e6:	ab10      	add	r3, sp, #64	@ 0x40
 80053e8:	881e      	ldrh	r6, [r3, #0]
 80053ea:	ab13      	add	r3, sp, #76	@ 0x4c
 80053ec:	781b      	ldrb	r3, [r3, #0]
 80053ee:	0005      	movs	r5, r0
 80053f0:	000c      	movs	r4, r1
 80053f2:	9201      	str	r2, [sp, #4]
 80053f4:	9303      	str	r3, [sp, #12]
 80053f6:	2800      	cmp	r0, #0
 80053f8:	d100      	bne.n	80053fc <is31fl3236a_lamp_backend_init+0x1c>
 80053fa:	e0a5      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 80053fc:	229e      	movs	r2, #158	@ 0x9e
 80053fe:	2100      	movs	r1, #0
 8005400:	0092      	lsls	r2, r2, #2
 8005402:	f7fa fede 	bl	80001c2 <memset>
 8005406:	2c00      	cmp	r4, #0
 8005408:	d100      	bne.n	800540c <is31fl3236a_lamp_backend_init+0x2c>
 800540a:	e09d      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 800540c:	6863      	ldr	r3, [r4, #4]
 800540e:	2b00      	cmp	r3, #0
 8005410:	d100      	bne.n	8005414 <is31fl3236a_lamp_backend_init+0x34>
 8005412:	e099      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005414:	68a3      	ldr	r3, [r4, #8]
 8005416:	2b00      	cmp	r3, #0
 8005418:	d100      	bne.n	800541c <is31fl3236a_lamp_backend_init+0x3c>
 800541a:	e095      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 800541c:	68e3      	ldr	r3, [r4, #12]
 800541e:	2b00      	cmp	r3, #0
 8005420:	d100      	bne.n	8005424 <is31fl3236a_lamp_backend_init+0x44>
 8005422:	e091      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005424:	6923      	ldr	r3, [r4, #16]
 8005426:	2b00      	cmp	r3, #0
 8005428:	d100      	bne.n	800542c <is31fl3236a_lamp_backend_init+0x4c>
 800542a:	e08d      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 800542c:	6963      	ldr	r3, [r4, #20]
 800542e:	2b00      	cmp	r3, #0
 8005430:	d100      	bne.n	8005434 <is31fl3236a_lamp_backend_init+0x54>
 8005432:	e089      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005434:	69a3      	ldr	r3, [r4, #24]
 8005436:	2b00      	cmp	r3, #0
 8005438:	d100      	bne.n	800543c <is31fl3236a_lamp_backend_init+0x5c>
 800543a:	e085      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 800543c:	9b01      	ldr	r3, [sp, #4]
 800543e:	2b00      	cmp	r3, #0
 8005440:	d100      	bne.n	8005444 <is31fl3236a_lamp_backend_init+0x64>
 8005442:	e081      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005444:	9b11      	ldr	r3, [sp, #68]	@ 0x44
 8005446:	2b00      	cmp	r3, #0
 8005448:	d07e      	beq.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 800544a:	9b14      	ldr	r3, [sp, #80]	@ 0x50
 800544c:	2b00      	cmp	r3, #0
 800544e:	d07b      	beq.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005450:	9b15      	ldr	r3, [sp, #84]	@ 0x54
 8005452:	2b00      	cmp	r3, #0
 8005454:	d078      	beq.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005456:	2e3d      	cmp	r6, #61	@ 0x3d
 8005458:	d001      	beq.n	800545e <is31fl3236a_lamp_backend_init+0x7e>
 800545a:	2e7a      	cmp	r6, #122	@ 0x7a
 800545c:	d174      	bne.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 800545e:	9b12      	ldr	r3, [sp, #72]	@ 0x48
 8005460:	429e      	cmp	r6, r3
 8005462:	d171      	bne.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005464:	2304      	movs	r3, #4
 8005466:	2e3d      	cmp	r6, #61	@ 0x3d
 8005468:	d100      	bne.n	800546c <is31fl3236a_lamp_backend_init+0x8c>
 800546a:	3b02      	subs	r3, #2
 800546c:	9a02      	ldr	r2, [sp, #8]
 800546e:	4293      	cmp	r3, r2
 8005470:	d16a      	bne.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005472:	9b03      	ldr	r3, [sp, #12]
 8005474:	2b01      	cmp	r3, #1
 8005476:	d867      	bhi.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005478:	0013      	movs	r3, r2
 800547a:	9a01      	ldr	r2, [sp, #4]
 800547c:	18d7      	adds	r7, r2, r3
 800547e:	7811      	ldrb	r1, [r2, #0]
 8005480:	000b      	movs	r3, r1
 8005482:	3b08      	subs	r3, #8
 8005484:	2b6f      	cmp	r3, #111	@ 0x6f
 8005486:	d85f      	bhi.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 8005488:	9b01      	ldr	r3, [sp, #4]
 800548a:	4293      	cmp	r3, r2
 800548c:	d157      	bne.n	800553e <is31fl3236a_lamp_backend_init+0x15e>
 800548e:	1c5a      	adds	r2, r3, #1
 8005490:	42ba      	cmp	r2, r7
 8005492:	d1f4      	bne.n	800547e <is31fl3236a_lamp_backend_init+0x9e>
 8005494:	9b11      	ldr	r3, [sp, #68]	@ 0x44
 8005496:	9a12      	ldr	r2, [sp, #72]	@ 0x48
 8005498:	18d2      	adds	r2, r2, r3
 800549a:	3301      	adds	r3, #1
 800549c:	1e59      	subs	r1, r3, #1
 800549e:	7809      	ldrb	r1, [r1, #0]
 80054a0:	2907      	cmp	r1, #7
 80054a2:	d851      	bhi.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 80054a4:	429a      	cmp	r2, r3
 80054a6:	d1f8      	bne.n	800549a <is31fl3236a_lamp_backend_init+0xba>
 80054a8:	002b      	movs	r3, r5
 80054aa:	0022      	movs	r2, r4
 80054ac:	ca83      	ldmia	r2!, {r0, r1, r7}
 80054ae:	c383      	stmia	r3!, {r0, r1, r7}
 80054b0:	ca83      	ldmia	r2!, {r0, r1, r7}
 80054b2:	c383      	stmia	r3!, {r0, r1, r7}
 80054b4:	6812      	ldr	r2, [r2, #0]
 80054b6:	0030      	movs	r0, r6
 80054b8:	601a      	str	r2, [r3, #0]
 80054ba:	9a14      	ldr	r2, [sp, #80]	@ 0x50
 80054bc:	3394      	adds	r3, #148	@ 0x94
 80054be:	601a      	str	r2, [r3, #0]
 80054c0:	9a15      	ldr	r2, [sp, #84]	@ 0x54
 80054c2:	2118      	movs	r1, #24
 80054c4:	605a      	str	r2, [r3, #4]
 80054c6:	9a16      	ldr	r2, [sp, #88]	@ 0x58
 80054c8:	3017      	adds	r0, #23
 80054ca:	609a      	str	r2, [r3, #8]
 80054cc:	239a      	movs	r3, #154	@ 0x9a
 80054ce:	009b      	lsls	r3, r3, #2
 80054d0:	9a02      	ldr	r2, [sp, #8]
 80054d2:	52ee      	strh	r6, [r5, r3]
 80054d4:	4b33      	ldr	r3, [pc, #204]	@ (80055a4 <is31fl3236a_lamp_backend_init+0x1c4>)
 80054d6:	54ea      	strb	r2, [r5, r3]
 80054d8:	f000 f90a 	bl	80056f0 <__udivsi3>
 80054dc:	4b32      	ldr	r3, [pc, #200]	@ (80055a8 <is31fl3236a_lamp_backend_init+0x1c8>)
 80054de:	9a03      	ldr	r2, [sp, #12]
 80054e0:	54e8      	strb	r0, [r5, r3]
 80054e2:	4b32      	ldr	r3, [pc, #200]	@ (80055ac <is31fl3236a_lamp_backend_init+0x1cc>)
 80054e4:	9901      	ldr	r1, [sp, #4]
 80054e6:	54ea      	strb	r2, [r5, r3]
 80054e8:	3b09      	subs	r3, #9
 80054ea:	18e8      	adds	r0, r5, r3
 80054ec:	9a02      	ldr	r2, [sp, #8]
 80054ee:	f7fa fe5f 	bl	80001b0 <memcpy>
 80054f2:	0028      	movs	r0, r5
 80054f4:	3071      	adds	r0, #113	@ 0x71
 80054f6:	9911      	ldr	r1, [sp, #68]	@ 0x44
 80054f8:	9a12      	ldr	r2, [sp, #72]	@ 0x48
 80054fa:	30ff      	adds	r0, #255	@ 0xff
 80054fc:	f7fa fe58 	bl	80001b0 <memcpy>
 8005500:	2100      	movs	r1, #0
 8005502:	9816      	ldr	r0, [sp, #88]	@ 0x58
 8005504:	9b14      	ldr	r3, [sp, #80]	@ 0x50
 8005506:	4798      	blx	r3
 8005508:	2800      	cmp	r0, #0
 800550a:	d00f      	beq.n	800552c <is31fl3236a_lamp_backend_init+0x14c>
 800550c:	2101      	movs	r1, #1
 800550e:	6963      	ldr	r3, [r4, #20]
 8005510:	6820      	ldr	r0, [r4, #0]
 8005512:	4798      	blx	r3
 8005514:	2800      	cmp	r0, #0
 8005516:	d009      	beq.n	800552c <is31fl3236a_lamp_backend_init+0x14c>
 8005518:	68a3      	ldr	r3, [r4, #8]
 800551a:	6820      	ldr	r0, [r4, #0]
 800551c:	4798      	blx	r3
 800551e:	2800      	cmp	r0, #0
 8005520:	d004      	beq.n	800552c <is31fl3236a_lamp_backend_init+0x14c>
 8005522:	68e3      	ldr	r3, [r4, #12]
 8005524:	6820      	ldr	r0, [r4, #0]
 8005526:	4798      	blx	r3
 8005528:	2800      	cmp	r0, #0
 800552a:	d111      	bne.n	8005550 <is31fl3236a_lamp_backend_init+0x170>
 800552c:	69a3      	ldr	r3, [r4, #24]
 800552e:	2101      	movs	r1, #1
 8005530:	6820      	ldr	r0, [r4, #0]
 8005532:	4798      	blx	r3
 8005534:	2100      	movs	r1, #0
 8005536:	9816      	ldr	r0, [sp, #88]	@ 0x58
 8005538:	9b14      	ldr	r3, [sp, #80]	@ 0x50
 800553a:	4798      	blx	r3
 800553c:	e004      	b.n	8005548 <is31fl3236a_lamp_backend_init+0x168>
 800553e:	3301      	adds	r3, #1
 8005540:	1e58      	subs	r0, r3, #1
 8005542:	7800      	ldrb	r0, [r0, #0]
 8005544:	4288      	cmp	r0, r1
 8005546:	d1a0      	bne.n	800548a <is31fl3236a_lamp_backend_init+0xaa>
 8005548:	2600      	movs	r6, #0
 800554a:	0030      	movs	r0, r6
 800554c:	b00b      	add	sp, #44	@ 0x2c
 800554e:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8005550:	0028      	movs	r0, r5
 8005552:	f7ff fe43 	bl	80051dc <initialize_driver_group>
 8005556:	1e06      	subs	r6, r0, #0
 8005558:	d10e      	bne.n	8005578 <is31fl3236a_lamp_backend_init+0x198>
 800555a:	4b15      	ldr	r3, [pc, #84]	@ (80055b0 <is31fl3236a_lamp_backend_init+0x1d0>)
 800555c:	2101      	movs	r1, #1
 800555e:	54ee      	strb	r6, [r5, r3]
 8005560:	6820      	ldr	r0, [r4, #0]
 8005562:	6963      	ldr	r3, [r4, #20]
 8005564:	4798      	blx	r3
 8005566:	69a3      	ldr	r3, [r4, #24]
 8005568:	2101      	movs	r1, #1
 800556a:	6820      	ldr	r0, [r4, #0]
 800556c:	4798      	blx	r3
 800556e:	0031      	movs	r1, r6
 8005570:	9816      	ldr	r0, [sp, #88]	@ 0x58
 8005572:	9b14      	ldr	r3, [sp, #80]	@ 0x50
 8005574:	4798      	blx	r3
 8005576:	e7e8      	b.n	800554a <is31fl3236a_lamp_backend_init+0x16a>
 8005578:	0028      	movs	r0, r5
 800557a:	4b0e      	ldr	r3, [pc, #56]	@ (80055b4 <is31fl3236a_lamp_backend_init+0x1d4>)
 800557c:	9a17      	ldr	r2, [sp, #92]	@ 0x5c
 800557e:	9306      	str	r3, [sp, #24]
 8005580:	4b0d      	ldr	r3, [pc, #52]	@ (80055b8 <is31fl3236a_lamp_backend_init+0x1d8>)
 8005582:	a905      	add	r1, sp, #20
 8005584:	9307      	str	r3, [sp, #28]
 8005586:	4b0d      	ldr	r3, [pc, #52]	@ (80055bc <is31fl3236a_lamp_backend_init+0x1dc>)
 8005588:	30b8      	adds	r0, #184	@ 0xb8
 800558a:	9308      	str	r3, [sp, #32]
 800558c:	4b0c      	ldr	r3, [pc, #48]	@ (80055c0 <is31fl3236a_lamp_backend_init+0x1e0>)
 800558e:	9505      	str	r5, [sp, #20]
 8005590:	9309      	str	r3, [sp, #36]	@ 0x24
 8005592:	f7fe fe3d 	bl	8004210 <lg_output_init>
 8005596:	1e06      	subs	r6, r0, #0
 8005598:	d0df      	beq.n	800555a <is31fl3236a_lamp_backend_init+0x17a>
 800559a:	2201      	movs	r2, #1
 800559c:	4b09      	ldr	r3, [pc, #36]	@ (80055c4 <is31fl3236a_lamp_backend_init+0x1e4>)
 800559e:	54ea      	strb	r2, [r5, r3]
 80055a0:	e7d3      	b.n	800554a <is31fl3236a_lamp_backend_init+0x16a>
 80055a2:	46c0      	nop			@ (mov r8, r8)
 80055a4:	0000026a 	.word	0x0000026a
 80055a8:	0000026b 	.word	0x0000026b
 80055ac:	0000026d 	.word	0x0000026d
 80055b0:	0000026e 	.word	0x0000026e
 80055b4:	08005225 	.word	0x08005225
 80055b8:	08005195 	.word	0x08005195
 80055bc:	080053b1 	.word	0x080053b1
 80055c0:	080051bd 	.word	0x080051bd
 80055c4:	00000271 	.word	0x00000271

080055c8 <is31fl3236a_lamp_backend_sync>:
 80055c8:	b510      	push	{r4, lr}
 80055ca:	2800      	cmp	r0, #0
 80055cc:	d101      	bne.n	80055d2 <is31fl3236a_lamp_backend_sync+0xa>
 80055ce:	2003      	movs	r0, #3
 80055d0:	bd10      	pop	{r4, pc}
 80055d2:	4b04      	ldr	r3, [pc, #16]	@ (80055e4 <is31fl3236a_lamp_backend_sync+0x1c>)
 80055d4:	5cc3      	ldrb	r3, [r0, r3]
 80055d6:	2b00      	cmp	r3, #0
 80055d8:	d0f9      	beq.n	80055ce <is31fl3236a_lamp_backend_sync+0x6>
 80055da:	30b8      	adds	r0, #184	@ 0xb8
 80055dc:	f7fe fe46 	bl	800426c <lg_output_sync>
 80055e0:	e7f6      	b.n	80055d0 <is31fl3236a_lamp_backend_sync+0x8>
 80055e2:	46c0      	nop			@ (mov r8, r8)
 80055e4:	00000271 	.word	0x00000271

080055e8 <is31fl3236a_lamp_backend_recover>:
 80055e8:	b5f0      	push	{r4, r5, r6, r7, lr}
 80055ea:	b087      	sub	sp, #28
 80055ec:	1e04      	subs	r4, r0, #0
 80055ee:	9100      	str	r1, [sp, #0]
 80055f0:	d02a      	beq.n	8005648 <is31fl3236a_lamp_backend_recover+0x60>
 80055f2:	4b33      	ldr	r3, [pc, #204]	@ (80056c0 <is31fl3236a_lamp_backend_recover+0xd8>)
 80055f4:	5cc5      	ldrb	r5, [r0, r3]
 80055f6:	2d00      	cmp	r5, #0
 80055f8:	d027      	beq.n	800564a <is31fl3236a_lamp_backend_recover+0x62>
 80055fa:	2900      	cmp	r1, #0
 80055fc:	d024      	beq.n	8005648 <is31fl3236a_lamp_backend_recover+0x60>
 80055fe:	2500      	movs	r5, #0
 8005600:	4e30      	ldr	r6, [pc, #192]	@ (80056c4 <is31fl3236a_lamp_backend_recover+0xdc>)
 8005602:	2101      	movs	r1, #1
 8005604:	5d83      	ldrb	r3, [r0, r6]
 8005606:	5585      	strb	r5, [r0, r6]
 8005608:	9302      	str	r3, [sp, #8]
 800560a:	6943      	ldr	r3, [r0, #20]
 800560c:	6800      	ldr	r0, [r0, #0]
 800560e:	4798      	blx	r3
 8005610:	68a3      	ldr	r3, [r4, #8]
 8005612:	9003      	str	r0, [sp, #12]
 8005614:	6820      	ldr	r0, [r4, #0]
 8005616:	4798      	blx	r3
 8005618:	2101      	movs	r1, #1
 800561a:	69a3      	ldr	r3, [r4, #24]
 800561c:	9004      	str	r0, [sp, #16]
 800561e:	6820      	ldr	r0, [r4, #0]
 8005620:	4798      	blx	r3
 8005622:	0023      	movs	r3, r4
 8005624:	0027      	movs	r7, r4
 8005626:	33b4      	adds	r3, #180	@ 0xb4
 8005628:	9301      	str	r3, [sp, #4]
 800562a:	9a01      	ldr	r2, [sp, #4]
 800562c:	37ac      	adds	r7, #172	@ 0xac
 800562e:	683b      	ldr	r3, [r7, #0]
 8005630:	9005      	str	r0, [sp, #20]
 8005632:	0029      	movs	r1, r5
 8005634:	6810      	ldr	r0, [r2, #0]
 8005636:	4798      	blx	r3
 8005638:	239c      	movs	r3, #156	@ 0x9c
 800563a:	009b      	lsls	r3, r3, #2
 800563c:	54e5      	strb	r5, [r4, r3]
 800563e:	9b03      	ldr	r3, [sp, #12]
 8005640:	42ab      	cmp	r3, r5
 8005642:	d105      	bne.n	8005650 <is31fl3236a_lamp_backend_recover+0x68>
 8005644:	9b02      	ldr	r3, [sp, #8]
 8005646:	55a3      	strb	r3, [r4, r6]
 8005648:	2500      	movs	r5, #0
 800564a:	0028      	movs	r0, r5
 800564c:	b007      	add	sp, #28
 800564e:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8005650:	9b04      	ldr	r3, [sp, #16]
 8005652:	2b00      	cmp	r3, #0
 8005654:	d0f6      	beq.n	8005644 <is31fl3236a_lamp_backend_recover+0x5c>
 8005656:	9b05      	ldr	r3, [sp, #20]
 8005658:	2b00      	cmp	r3, #0
 800565a:	d0f3      	beq.n	8005644 <is31fl3236a_lamp_backend_recover+0x5c>
 800565c:	2800      	cmp	r0, #0
 800565e:	d0f1      	beq.n	8005644 <is31fl3236a_lamp_backend_recover+0x5c>
 8005660:	0020      	movs	r0, r4
 8005662:	9900      	ldr	r1, [sp, #0]
 8005664:	30b8      	adds	r0, #184	@ 0xb8
 8005666:	f7fe ff2b 	bl	80044c0 <lg_output_recover>
 800566a:	2800      	cmp	r0, #0
 800566c:	d0ea      	beq.n	8005644 <is31fl3236a_lamp_backend_recover+0x5c>
 800566e:	0020      	movs	r0, r4
 8005670:	0029      	movs	r1, r5
 8005672:	2290      	movs	r2, #144	@ 0x90
 8005674:	301c      	adds	r0, #28
 8005676:	f7fa fda4 	bl	80001c2 <memset>
 800567a:	0020      	movs	r0, r4
 800567c:	f7ff fdae 	bl	80051dc <initialize_driver_group>
 8005680:	1e05      	subs	r5, r0, #0
 8005682:	d1e2      	bne.n	800564a <is31fl3236a_lamp_backend_recover+0x62>
 8005684:	2366      	movs	r3, #102	@ 0x66
 8005686:	55a0      	strb	r0, [r4, r6]
 8005688:	2601      	movs	r6, #1
 800568a:	2186      	movs	r1, #134	@ 0x86
 800568c:	0022      	movs	r2, r4
 800568e:	33ff      	adds	r3, #255	@ 0xff
 8005690:	54e6      	strb	r6, [r4, r3]
 8005692:	9b00      	ldr	r3, [sp, #0]
 8005694:	0089      	lsls	r1, r1, #2
 8005696:	32d8      	adds	r2, #216	@ 0xd8
 8005698:	185b      	adds	r3, r3, r1
 800569a:	cb03      	ldmia	r3!, {r0, r1}
 800569c:	6963      	ldr	r3, [r4, #20]
 800569e:	c203      	stmia	r2!, {r0, r1}
 80056a0:	0031      	movs	r1, r6
 80056a2:	6820      	ldr	r0, [r4, #0]
 80056a4:	4798      	blx	r3
 80056a6:	0031      	movs	r1, r6
 80056a8:	69a3      	ldr	r3, [r4, #24]
 80056aa:	6820      	ldr	r0, [r4, #0]
 80056ac:	4798      	blx	r3
 80056ae:	9a01      	ldr	r2, [sp, #4]
 80056b0:	683b      	ldr	r3, [r7, #0]
 80056b2:	0029      	movs	r1, r5
 80056b4:	6810      	ldr	r0, [r2, #0]
 80056b6:	4798      	blx	r3
 80056b8:	239c      	movs	r3, #156	@ 0x9c
 80056ba:	009b      	lsls	r3, r3, #2
 80056bc:	54e5      	strb	r5, [r4, r3]
 80056be:	e7c4      	b.n	800564a <is31fl3236a_lamp_backend_recover+0x62>
 80056c0:	00000271 	.word	0x00000271
 80056c4:	0000026e 	.word	0x0000026e

080056c8 <__gnu_thumb1_case_sqi>:
 80056c8:	b402      	push	{r1}
 80056ca:	4671      	mov	r1, lr
 80056cc:	0849      	lsrs	r1, r1, #1
 80056ce:	0049      	lsls	r1, r1, #1
 80056d0:	5609      	ldrsb	r1, [r1, r0]
 80056d2:	0049      	lsls	r1, r1, #1
 80056d4:	448e      	add	lr, r1
 80056d6:	bc02      	pop	{r1}
 80056d8:	4770      	bx	lr
 80056da:	46c0      	nop			@ (mov r8, r8)

080056dc <__gnu_thumb1_case_uqi>:
 80056dc:	b402      	push	{r1}
 80056de:	4671      	mov	r1, lr
 80056e0:	0849      	lsrs	r1, r1, #1
 80056e2:	0049      	lsls	r1, r1, #1
 80056e4:	5c09      	ldrb	r1, [r1, r0]
 80056e6:	0049      	lsls	r1, r1, #1
 80056e8:	448e      	add	lr, r1
 80056ea:	bc02      	pop	{r1}
 80056ec:	4770      	bx	lr
 80056ee:	46c0      	nop			@ (mov r8, r8)

080056f0 <__udivsi3>:
 80056f0:	2200      	movs	r2, #0
 80056f2:	0843      	lsrs	r3, r0, #1
 80056f4:	428b      	cmp	r3, r1
 80056f6:	d374      	bcc.n	80057e2 <__udivsi3+0xf2>
 80056f8:	0903      	lsrs	r3, r0, #4
 80056fa:	428b      	cmp	r3, r1
 80056fc:	d35f      	bcc.n	80057be <__udivsi3+0xce>
 80056fe:	0a03      	lsrs	r3, r0, #8
 8005700:	428b      	cmp	r3, r1
 8005702:	d344      	bcc.n	800578e <__udivsi3+0x9e>
 8005704:	0b03      	lsrs	r3, r0, #12
 8005706:	428b      	cmp	r3, r1
 8005708:	d328      	bcc.n	800575c <__udivsi3+0x6c>
 800570a:	0c03      	lsrs	r3, r0, #16
 800570c:	428b      	cmp	r3, r1
 800570e:	d30d      	bcc.n	800572c <__udivsi3+0x3c>
 8005710:	22ff      	movs	r2, #255	@ 0xff
 8005712:	0209      	lsls	r1, r1, #8
 8005714:	ba12      	rev	r2, r2
 8005716:	0c03      	lsrs	r3, r0, #16
 8005718:	428b      	cmp	r3, r1
 800571a:	d302      	bcc.n	8005722 <__udivsi3+0x32>
 800571c:	1212      	asrs	r2, r2, #8
 800571e:	0209      	lsls	r1, r1, #8
 8005720:	d065      	beq.n	80057ee <__udivsi3+0xfe>
 8005722:	0b03      	lsrs	r3, r0, #12
 8005724:	428b      	cmp	r3, r1
 8005726:	d319      	bcc.n	800575c <__udivsi3+0x6c>
 8005728:	e000      	b.n	800572c <__udivsi3+0x3c>
 800572a:	0a09      	lsrs	r1, r1, #8
 800572c:	0bc3      	lsrs	r3, r0, #15
 800572e:	428b      	cmp	r3, r1
 8005730:	d301      	bcc.n	8005736 <__udivsi3+0x46>
 8005732:	03cb      	lsls	r3, r1, #15
 8005734:	1ac0      	subs	r0, r0, r3
 8005736:	4152      	adcs	r2, r2
 8005738:	0b83      	lsrs	r3, r0, #14
 800573a:	428b      	cmp	r3, r1
 800573c:	d301      	bcc.n	8005742 <__udivsi3+0x52>
 800573e:	038b      	lsls	r3, r1, #14
 8005740:	1ac0      	subs	r0, r0, r3
 8005742:	4152      	adcs	r2, r2
 8005744:	0b43      	lsrs	r3, r0, #13
 8005746:	428b      	cmp	r3, r1
 8005748:	d301      	bcc.n	800574e <__udivsi3+0x5e>
 800574a:	034b      	lsls	r3, r1, #13
 800574c:	1ac0      	subs	r0, r0, r3
 800574e:	4152      	adcs	r2, r2
 8005750:	0b03      	lsrs	r3, r0, #12
 8005752:	428b      	cmp	r3, r1
 8005754:	d301      	bcc.n	800575a <__udivsi3+0x6a>
 8005756:	030b      	lsls	r3, r1, #12
 8005758:	1ac0      	subs	r0, r0, r3
 800575a:	4152      	adcs	r2, r2
 800575c:	0ac3      	lsrs	r3, r0, #11
 800575e:	428b      	cmp	r3, r1
 8005760:	d301      	bcc.n	8005766 <__udivsi3+0x76>
 8005762:	02cb      	lsls	r3, r1, #11
 8005764:	1ac0      	subs	r0, r0, r3
 8005766:	4152      	adcs	r2, r2
 8005768:	0a83      	lsrs	r3, r0, #10
 800576a:	428b      	cmp	r3, r1
 800576c:	d301      	bcc.n	8005772 <__udivsi3+0x82>
 800576e:	028b      	lsls	r3, r1, #10
 8005770:	1ac0      	subs	r0, r0, r3
 8005772:	4152      	adcs	r2, r2
 8005774:	0a43      	lsrs	r3, r0, #9
 8005776:	428b      	cmp	r3, r1
 8005778:	d301      	bcc.n	800577e <__udivsi3+0x8e>
 800577a:	024b      	lsls	r3, r1, #9
 800577c:	1ac0      	subs	r0, r0, r3
 800577e:	4152      	adcs	r2, r2
 8005780:	0a03      	lsrs	r3, r0, #8
 8005782:	428b      	cmp	r3, r1
 8005784:	d301      	bcc.n	800578a <__udivsi3+0x9a>
 8005786:	020b      	lsls	r3, r1, #8
 8005788:	1ac0      	subs	r0, r0, r3
 800578a:	4152      	adcs	r2, r2
 800578c:	d2cd      	bcs.n	800572a <__udivsi3+0x3a>
 800578e:	09c3      	lsrs	r3, r0, #7
 8005790:	428b      	cmp	r3, r1
 8005792:	d301      	bcc.n	8005798 <__udivsi3+0xa8>
 8005794:	01cb      	lsls	r3, r1, #7
 8005796:	1ac0      	subs	r0, r0, r3
 8005798:	4152      	adcs	r2, r2
 800579a:	0983      	lsrs	r3, r0, #6
 800579c:	428b      	cmp	r3, r1
 800579e:	d301      	bcc.n	80057a4 <__udivsi3+0xb4>
 80057a0:	018b      	lsls	r3, r1, #6
 80057a2:	1ac0      	subs	r0, r0, r3
 80057a4:	4152      	adcs	r2, r2
 80057a6:	0943      	lsrs	r3, r0, #5
 80057a8:	428b      	cmp	r3, r1
 80057aa:	d301      	bcc.n	80057b0 <__udivsi3+0xc0>
 80057ac:	014b      	lsls	r3, r1, #5
 80057ae:	1ac0      	subs	r0, r0, r3
 80057b0:	4152      	adcs	r2, r2
 80057b2:	0903      	lsrs	r3, r0, #4
 80057b4:	428b      	cmp	r3, r1
 80057b6:	d301      	bcc.n	80057bc <__udivsi3+0xcc>
 80057b8:	010b      	lsls	r3, r1, #4
 80057ba:	1ac0      	subs	r0, r0, r3
 80057bc:	4152      	adcs	r2, r2
 80057be:	08c3      	lsrs	r3, r0, #3
 80057c0:	428b      	cmp	r3, r1
 80057c2:	d301      	bcc.n	80057c8 <__udivsi3+0xd8>
 80057c4:	00cb      	lsls	r3, r1, #3
 80057c6:	1ac0      	subs	r0, r0, r3
 80057c8:	4152      	adcs	r2, r2
 80057ca:	0883      	lsrs	r3, r0, #2
 80057cc:	428b      	cmp	r3, r1
 80057ce:	d301      	bcc.n	80057d4 <__udivsi3+0xe4>
 80057d0:	008b      	lsls	r3, r1, #2
 80057d2:	1ac0      	subs	r0, r0, r3
 80057d4:	4152      	adcs	r2, r2
 80057d6:	0843      	lsrs	r3, r0, #1
 80057d8:	428b      	cmp	r3, r1
 80057da:	d301      	bcc.n	80057e0 <__udivsi3+0xf0>
 80057dc:	004b      	lsls	r3, r1, #1
 80057de:	1ac0      	subs	r0, r0, r3
 80057e0:	4152      	adcs	r2, r2
 80057e2:	1a41      	subs	r1, r0, r1
 80057e4:	d200      	bcs.n	80057e8 <__udivsi3+0xf8>
 80057e6:	4601      	mov	r1, r0
 80057e8:	4152      	adcs	r2, r2
 80057ea:	4610      	mov	r0, r2
 80057ec:	4770      	bx	lr
 80057ee:	e7ff      	b.n	80057f0 <__udivsi3+0x100>
 80057f0:	b501      	push	{r0, lr}
 80057f2:	2000      	movs	r0, #0
 80057f4:	f000 f806 	bl	8005804 <__aeabi_idiv0>
 80057f8:	bd02      	pop	{r1, pc}
 80057fa:	46c0      	nop			@ (mov r8, r8)

080057fc <__aeabi_uidivmod>:
 80057fc:	2900      	cmp	r1, #0
 80057fe:	d0f7      	beq.n	80057f0 <__udivsi3+0x100>
 8005800:	e776      	b.n	80056f0 <__udivsi3>
 8005802:	4770      	bx	lr

08005804 <__aeabi_idiv0>:
 8005804:	4770      	bx	lr
 8005806:	46c0      	nop			@ (mov r8, r8)

08005808 <__aeabi_llsr>:
 8005808:	40d0      	lsrs	r0, r2
 800580a:	000b      	movs	r3, r1
 800580c:	40d1      	lsrs	r1, r2
 800580e:	469c      	mov	ip, r3
 8005810:	3a20      	subs	r2, #32
 8005812:	40d3      	lsrs	r3, r2
 8005814:	4318      	orrs	r0, r3
 8005816:	4252      	negs	r2, r2
 8005818:	4663      	mov	r3, ip
 800581a:	4093      	lsls	r3, r2
 800581c:	4318      	orrs	r0, r3
 800581e:	4770      	bx	lr

08005820 <__aeabi_llsl>:
 8005820:	4091      	lsls	r1, r2
 8005822:	0003      	movs	r3, r0
 8005824:	4090      	lsls	r0, r2
 8005826:	469c      	mov	ip, r3
 8005828:	3a20      	subs	r2, #32
 800582a:	4093      	lsls	r3, r2
 800582c:	4319      	orrs	r1, r3
 800582e:	4252      	negs	r2, r2
 8005830:	4663      	mov	r3, ip
 8005832:	40d3      	lsrs	r3, r2
 8005834:	4319      	orrs	r1, r3
 8005836:	4770      	bx	lr

08005838 <__aeabi_uldivmod>:
 8005838:	2b00      	cmp	r3, #0
 800583a:	d111      	bne.n	8005860 <__aeabi_uldivmod+0x28>
 800583c:	2a00      	cmp	r2, #0
 800583e:	d10f      	bne.n	8005860 <__aeabi_uldivmod+0x28>
 8005840:	2900      	cmp	r1, #0
 8005842:	d100      	bne.n	8005846 <__aeabi_uldivmod+0xe>
 8005844:	2800      	cmp	r0, #0
 8005846:	d002      	beq.n	800584e <__aeabi_uldivmod+0x16>
 8005848:	2100      	movs	r1, #0
 800584a:	43c9      	mvns	r1, r1
 800584c:	0008      	movs	r0, r1
 800584e:	b407      	push	{r0, r1, r2}
 8005850:	4802      	ldr	r0, [pc, #8]	@ (800585c <__aeabi_uldivmod+0x24>)
 8005852:	a102      	add	r1, pc, #8	@ (adr r1, 800585c <__aeabi_uldivmod+0x24>)
 8005854:	1840      	adds	r0, r0, r1
 8005856:	9002      	str	r0, [sp, #8]
 8005858:	bd03      	pop	{r0, r1, pc}
 800585a:	46c0      	nop			@ (mov r8, r8)
 800585c:	ffffffa9 	.word	0xffffffa9
 8005860:	b403      	push	{r0, r1}
 8005862:	4668      	mov	r0, sp
 8005864:	b501      	push	{r0, lr}
 8005866:	9802      	ldr	r0, [sp, #8]
 8005868:	f000 f82e 	bl	80058c8 <__udivmoddi4>
 800586c:	9b01      	ldr	r3, [sp, #4]
 800586e:	469e      	mov	lr, r3
 8005870:	b002      	add	sp, #8
 8005872:	bc0c      	pop	{r2, r3}
 8005874:	4770      	bx	lr
 8005876:	46c0      	nop			@ (mov r8, r8)

08005878 <__aeabi_lmul>:
 8005878:	b5f0      	push	{r4, r5, r6, r7, lr}
 800587a:	000f      	movs	r7, r1
 800587c:	0411      	lsls	r1, r2, #16
 800587e:	0c09      	lsrs	r1, r1, #16
 8005880:	0c06      	lsrs	r6, r0, #16
 8005882:	0405      	lsls	r5, r0, #16
 8005884:	0004      	movs	r4, r0
 8005886:	0008      	movs	r0, r1
 8005888:	46c6      	mov	lr, r8
 800588a:	0c2d      	lsrs	r5, r5, #16
 800588c:	469c      	mov	ip, r3
 800588e:	0c13      	lsrs	r3, r2, #16
 8005890:	4368      	muls	r0, r5
 8005892:	4371      	muls	r1, r6
 8005894:	435d      	muls	r5, r3
 8005896:	435e      	muls	r6, r3
 8005898:	186d      	adds	r5, r5, r1
 800589a:	0c03      	lsrs	r3, r0, #16
 800589c:	195b      	adds	r3, r3, r5
 800589e:	b500      	push	{lr}
 80058a0:	4299      	cmp	r1, r3
 80058a2:	d902      	bls.n	80058aa <__aeabi_lmul+0x32>
 80058a4:	2180      	movs	r1, #128	@ 0x80
 80058a6:	0249      	lsls	r1, r1, #9
 80058a8:	1876      	adds	r6, r6, r1
 80058aa:	0400      	lsls	r0, r0, #16
 80058ac:	0c1d      	lsrs	r5, r3, #16
 80058ae:	0c00      	lsrs	r0, r0, #16
 80058b0:	041b      	lsls	r3, r3, #16
 80058b2:	1818      	adds	r0, r3, r0
 80058b4:	4663      	mov	r3, ip
 80058b6:	437a      	muls	r2, r7
 80058b8:	435c      	muls	r4, r3
 80058ba:	19ad      	adds	r5, r5, r6
 80058bc:	18a1      	adds	r1, r4, r2
 80058be:	1949      	adds	r1, r1, r5
 80058c0:	bc80      	pop	{r7}
 80058c2:	46b8      	mov	r8, r7
 80058c4:	bdf0      	pop	{r4, r5, r6, r7, pc}
 80058c6:	46c0      	nop			@ (mov r8, r8)

080058c8 <__udivmoddi4>:
 80058c8:	b5f0      	push	{r4, r5, r6, r7, lr}
 80058ca:	4645      	mov	r5, r8
 80058cc:	4657      	mov	r7, sl
 80058ce:	46de      	mov	lr, fp
 80058d0:	464e      	mov	r6, r9
 80058d2:	b5e0      	push	{r5, r6, r7, lr}
 80058d4:	0004      	movs	r4, r0
 80058d6:	000d      	movs	r5, r1
 80058d8:	4690      	mov	r8, r2
 80058da:	469a      	mov	sl, r3
 80058dc:	b083      	sub	sp, #12
 80058de:	428b      	cmp	r3, r1
 80058e0:	d82e      	bhi.n	8005940 <__udivmoddi4+0x78>
 80058e2:	d02b      	beq.n	800593c <__udivmoddi4+0x74>
 80058e4:	4651      	mov	r1, sl
 80058e6:	4640      	mov	r0, r8
 80058e8:	f000 f8b6 	bl	8005a58 <__clzdi2>
 80058ec:	0029      	movs	r1, r5
 80058ee:	0006      	movs	r6, r0
 80058f0:	0020      	movs	r0, r4
 80058f2:	f000 f8b1 	bl	8005a58 <__clzdi2>
 80058f6:	1a33      	subs	r3, r6, r0
 80058f8:	4699      	mov	r9, r3
 80058fa:	3b20      	subs	r3, #32
 80058fc:	d431      	bmi.n	8005962 <__udivmoddi4+0x9a>
 80058fe:	4642      	mov	r2, r8
 8005900:	409a      	lsls	r2, r3
 8005902:	469b      	mov	fp, r3
 8005904:	0017      	movs	r7, r2
 8005906:	4643      	mov	r3, r8
 8005908:	464a      	mov	r2, r9
 800590a:	4093      	lsls	r3, r2
 800590c:	001e      	movs	r6, r3
 800590e:	42af      	cmp	r7, r5
 8005910:	d837      	bhi.n	8005982 <__udivmoddi4+0xba>
 8005912:	42af      	cmp	r7, r5
 8005914:	d100      	bne.n	8005918 <__udivmoddi4+0x50>
 8005916:	e075      	b.n	8005a04 <__udivmoddi4+0x13c>
 8005918:	465a      	mov	r2, fp
 800591a:	1ba4      	subs	r4, r4, r6
 800591c:	41bd      	sbcs	r5, r7
 800591e:	2a00      	cmp	r2, #0
 8005920:	da00      	bge.n	8005924 <__udivmoddi4+0x5c>
 8005922:	e072      	b.n	8005a0a <__udivmoddi4+0x142>
 8005924:	2301      	movs	r3, #1
 8005926:	2000      	movs	r0, #0
 8005928:	2100      	movs	r1, #0
 800592a:	4093      	lsls	r3, r2
 800592c:	9000      	str	r0, [sp, #0]
 800592e:	9101      	str	r1, [sp, #4]
 8005930:	9301      	str	r3, [sp, #4]
 8005932:	2301      	movs	r3, #1
 8005934:	464a      	mov	r2, r9
 8005936:	4093      	lsls	r3, r2
 8005938:	9300      	str	r3, [sp, #0]
 800593a:	e026      	b.n	800598a <__udivmoddi4+0xc2>
 800593c:	4282      	cmp	r2, r0
 800593e:	d9d1      	bls.n	80058e4 <__udivmoddi4+0x1c>
 8005940:	2200      	movs	r2, #0
 8005942:	2300      	movs	r3, #0
 8005944:	9200      	str	r2, [sp, #0]
 8005946:	9301      	str	r3, [sp, #4]
 8005948:	9b0c      	ldr	r3, [sp, #48]	@ 0x30
 800594a:	2b00      	cmp	r3, #0
 800594c:	d000      	beq.n	8005950 <__udivmoddi4+0x88>
 800594e:	c330      	stmia	r3!, {r4, r5}
 8005950:	9800      	ldr	r0, [sp, #0]
 8005952:	9901      	ldr	r1, [sp, #4]
 8005954:	b003      	add	sp, #12
 8005956:	bcf0      	pop	{r4, r5, r6, r7}
 8005958:	46bb      	mov	fp, r7
 800595a:	46b2      	mov	sl, r6
 800595c:	46a9      	mov	r9, r5
 800595e:	46a0      	mov	r8, r4
 8005960:	bdf0      	pop	{r4, r5, r6, r7, pc}
 8005962:	464a      	mov	r2, r9
 8005964:	469b      	mov	fp, r3
 8005966:	2320      	movs	r3, #32
 8005968:	4641      	mov	r1, r8
 800596a:	1a9b      	subs	r3, r3, r2
 800596c:	40d9      	lsrs	r1, r3
 800596e:	000b      	movs	r3, r1
 8005970:	4651      	mov	r1, sl
 8005972:	4091      	lsls	r1, r2
 8005974:	464a      	mov	r2, r9
 8005976:	185f      	adds	r7, r3, r1
 8005978:	4643      	mov	r3, r8
 800597a:	4093      	lsls	r3, r2
 800597c:	001e      	movs	r6, r3
 800597e:	42af      	cmp	r7, r5
 8005980:	d9c7      	bls.n	8005912 <__udivmoddi4+0x4a>
 8005982:	2200      	movs	r2, #0
 8005984:	2300      	movs	r3, #0
 8005986:	9200      	str	r2, [sp, #0]
 8005988:	9301      	str	r3, [sp, #4]
 800598a:	4649      	mov	r1, r9
 800598c:	2900      	cmp	r1, #0
 800598e:	d0db      	beq.n	8005948 <__udivmoddi4+0x80>
 8005990:	07fb      	lsls	r3, r7, #31
 8005992:	469c      	mov	ip, r3
 8005994:	0872      	lsrs	r2, r6, #1
 8005996:	4462      	add	r2, ip
 8005998:	000e      	movs	r6, r1
 800599a:	087b      	lsrs	r3, r7, #1
 800599c:	e00e      	b.n	80059bc <__udivmoddi4+0xf4>
 800599e:	42ab      	cmp	r3, r5
 80059a0:	d101      	bne.n	80059a6 <__udivmoddi4+0xde>
 80059a2:	42a2      	cmp	r2, r4
 80059a4:	d80c      	bhi.n	80059c0 <__udivmoddi4+0xf8>
 80059a6:	1aa4      	subs	r4, r4, r2
 80059a8:	419d      	sbcs	r5, r3
 80059aa:	2001      	movs	r0, #1
 80059ac:	1924      	adds	r4, r4, r4
 80059ae:	416d      	adcs	r5, r5
 80059b0:	2100      	movs	r1, #0
 80059b2:	3e01      	subs	r6, #1
 80059b4:	1824      	adds	r4, r4, r0
 80059b6:	414d      	adcs	r5, r1
 80059b8:	2e00      	cmp	r6, #0
 80059ba:	d006      	beq.n	80059ca <__udivmoddi4+0x102>
 80059bc:	42ab      	cmp	r3, r5
 80059be:	d9ee      	bls.n	800599e <__udivmoddi4+0xd6>
 80059c0:	3e01      	subs	r6, #1
 80059c2:	1924      	adds	r4, r4, r4
 80059c4:	416d      	adcs	r5, r5
 80059c6:	2e00      	cmp	r6, #0
 80059c8:	d1f8      	bne.n	80059bc <__udivmoddi4+0xf4>
 80059ca:	9800      	ldr	r0, [sp, #0]
 80059cc:	9901      	ldr	r1, [sp, #4]
 80059ce:	465a      	mov	r2, fp
 80059d0:	1900      	adds	r0, r0, r4
 80059d2:	4169      	adcs	r1, r5
 80059d4:	2a00      	cmp	r2, #0
 80059d6:	db23      	blt.n	8005a20 <__udivmoddi4+0x158>
 80059d8:	002b      	movs	r3, r5
 80059da:	464c      	mov	r4, r9
 80059dc:	40d3      	lsrs	r3, r2
 80059de:	002a      	movs	r2, r5
 80059e0:	465e      	mov	r6, fp
 80059e2:	40e2      	lsrs	r2, r4
 80059e4:	001c      	movs	r4, r3
 80059e6:	0015      	movs	r5, r2
 80059e8:	2e00      	cmp	r6, #0
 80059ea:	db29      	blt.n	8005a40 <__udivmoddi4+0x178>
 80059ec:	001f      	movs	r7, r3
 80059ee:	40b7      	lsls	r7, r6
 80059f0:	003b      	movs	r3, r7
 80059f2:	0026      	movs	r6, r4
 80059f4:	464f      	mov	r7, r9
 80059f6:	40be      	lsls	r6, r7
 80059f8:	0032      	movs	r2, r6
 80059fa:	1a80      	subs	r0, r0, r2
 80059fc:	4199      	sbcs	r1, r3
 80059fe:	9000      	str	r0, [sp, #0]
 8005a00:	9101      	str	r1, [sp, #4]
 8005a02:	e7a1      	b.n	8005948 <__udivmoddi4+0x80>
 8005a04:	42a3      	cmp	r3, r4
 8005a06:	d8bc      	bhi.n	8005982 <__udivmoddi4+0xba>
 8005a08:	e786      	b.n	8005918 <__udivmoddi4+0x50>
 8005a0a:	464a      	mov	r2, r9
 8005a0c:	2320      	movs	r3, #32
 8005a0e:	2100      	movs	r1, #0
 8005a10:	1a9b      	subs	r3, r3, r2
 8005a12:	2200      	movs	r2, #0
 8005a14:	9100      	str	r1, [sp, #0]
 8005a16:	9201      	str	r2, [sp, #4]
 8005a18:	2201      	movs	r2, #1
 8005a1a:	40da      	lsrs	r2, r3
 8005a1c:	9201      	str	r2, [sp, #4]
 8005a1e:	e788      	b.n	8005932 <__udivmoddi4+0x6a>
 8005a20:	464e      	mov	r6, r9
 8005a22:	2320      	movs	r3, #32
 8005a24:	002a      	movs	r2, r5
 8005a26:	1b9b      	subs	r3, r3, r6
 8005a28:	409a      	lsls	r2, r3
 8005a2a:	0023      	movs	r3, r4
 8005a2c:	40f3      	lsrs	r3, r6
 8005a2e:	464c      	mov	r4, r9
 8005a30:	18d3      	adds	r3, r2, r3
 8005a32:	002a      	movs	r2, r5
 8005a34:	465e      	mov	r6, fp
 8005a36:	40e2      	lsrs	r2, r4
 8005a38:	001c      	movs	r4, r3
 8005a3a:	0015      	movs	r5, r2
 8005a3c:	2e00      	cmp	r6, #0
 8005a3e:	dad5      	bge.n	80059ec <__udivmoddi4+0x124>
 8005a40:	464f      	mov	r7, r9
 8005a42:	2320      	movs	r3, #32
 8005a44:	0026      	movs	r6, r4
 8005a46:	1bdb      	subs	r3, r3, r7
 8005a48:	40de      	lsrs	r6, r3
 8005a4a:	46b4      	mov	ip, r6
 8005a4c:	0016      	movs	r6, r2
 8005a4e:	40be      	lsls	r6, r7
 8005a50:	0033      	movs	r3, r6
 8005a52:	4463      	add	r3, ip
 8005a54:	e7cd      	b.n	80059f2 <__udivmoddi4+0x12a>
 8005a56:	46c0      	nop			@ (mov r8, r8)

08005a58 <__clzdi2>:
 8005a58:	b510      	push	{r4, lr}
 8005a5a:	2900      	cmp	r1, #0
 8005a5c:	d103      	bne.n	8005a66 <__clzdi2+0xe>
 8005a5e:	f000 f807 	bl	8005a70 <__clzsi2>
 8005a62:	3020      	adds	r0, #32
 8005a64:	e002      	b.n	8005a6c <__clzdi2+0x14>
 8005a66:	0008      	movs	r0, r1
 8005a68:	f000 f802 	bl	8005a70 <__clzsi2>
 8005a6c:	bd10      	pop	{r4, pc}
 8005a6e:	46c0      	nop			@ (mov r8, r8)

08005a70 <__clzsi2>:
 8005a70:	211c      	movs	r1, #28
 8005a72:	2301      	movs	r3, #1
 8005a74:	041b      	lsls	r3, r3, #16
 8005a76:	4298      	cmp	r0, r3
 8005a78:	d301      	bcc.n	8005a7e <__clzsi2+0xe>
 8005a7a:	0c00      	lsrs	r0, r0, #16
 8005a7c:	3910      	subs	r1, #16
 8005a7e:	0a1b      	lsrs	r3, r3, #8
 8005a80:	4298      	cmp	r0, r3
 8005a82:	d301      	bcc.n	8005a88 <__clzsi2+0x18>
 8005a84:	0a00      	lsrs	r0, r0, #8
 8005a86:	3908      	subs	r1, #8
 8005a88:	091b      	lsrs	r3, r3, #4
 8005a8a:	4298      	cmp	r0, r3
 8005a8c:	d301      	bcc.n	8005a92 <__clzsi2+0x22>
 8005a8e:	0900      	lsrs	r0, r0, #4
 8005a90:	3904      	subs	r1, #4
 8005a92:	a202      	add	r2, pc, #8	@ (adr r2, 8005a9c <__clzsi2+0x2c>)
 8005a94:	5c10      	ldrb	r0, [r2, r0]
 8005a96:	1840      	adds	r0, r0, r1
 8005a98:	4770      	bx	lr
 8005a9a:	46c0      	nop			@ (mov r8, r8)
 8005a9c:	02020304 	.word	0x02020304
 8005aa0:	01010101 	.word	0x01010101
	...

08005aac <AHBPrescTable>:
	...
 8005acc:	00000001 00000002 00000003 00000004     ................
 8005adc:	00000006 00000007 00000008 00000009     ................

08005aec <APBPrescTable>:
	...
 8005afc:	00000001 00000002 00000003 00000004     ................

08005b0c <current_profile>:
	...
 8005b50:	0800072d 08000725 0800071d 08000709     -...%...........
 8005b60:	08000715                                ....

08005b64 <addr>:
 8005b64:	00651915                                ..e.

08005b68 <populated>:
 8005b68:	00ffffff 00ffffff 00001fff              ............

08005b74 <addr>:
 8005b74:	                                         ..e

08005b77 <addr>:
 8005b77:	                                         ..e

08005b7a <channels>:
 8005b7a:	0d060501                                ....

08005b7e <curve>:
 8005b7e:	30d40086 3070008a 300c008d 2fa80091     ...0..p0...0.../
 8005b8e:	2f440095 2ee00098 2e7c009c 2e1800a1     ..D/......|.....
 8005b9e:	2db400a5 2d5000a9 2cec00ae 2c8800b2     ...-..P-...,...,
 8005bae:	2c2400b7 2bc000bc 2b5c00c1 2af800c6     ..$,...+..\+...*
 8005bbe:	2a9400cb 2a3000d1 29cc00d7 296800dd     ...*..0*...)..h)
 8005bce:	290400e3 28a000e9 283c00ef 27d800f6     ...)...(..<(...'
 8005bde:	277400fd 27100104 26ac010b 26480113     ..t'...'...&..H&
 8005bee:	25e4011a 25800122 251c012a 24b80133     ...%"..%*..%3..$
 8005bfe:	2454013c 23f00145 238c014e 23280157     <.T$E..#N..#W.(#
 8005c0e:	22c40161 2260016b 21fc0176 21980181     a.."k.`"v..!...!
 8005c1e:	2134018c 20d00197 206c01a3 200801af     ..4!... ..l ... 
 8005c2e:	1fa401bc 1f4001c9 1edc01d6 1e7801e4     ......@.......x.
 8005c3e:	1e1401f2 1db00201 1d4c0210 1ce80220     ..........L. ...
 8005c4e:	1c840230 1c200240 1bbc0251 1b580263     0...@. .Q...c.X.
 8005c5e:	1af40275 1a900287 1a2c029a 19c802ae     u.........,.....
 8005c6e:	196402c2 190002d7 189c02ed 18380303     ..d...........8.
 8005c7e:	17d40319 17700330 170c0348 16a80361     ....0.p.H...a...
 8005c8e:	1644037a 15e00394 157c03ae 151803c9     z.D.......|.....
 8005c9e:	14b403e5 14500402 13ec041f 1388043d     ......P.....=...
 8005cae:	1324045c 12c0047b 125c049b 11f804bc     \.$.{.....\.....
 8005cbe:	119404de 11300500 10cc0523 10680546     ......0.#...F.h.
 8005cce:	1004056b 0fa00590 0f3c05b5 0ed805dc     k.........<.....
 8005cde:	0e740603 0e10062a 0dac0652 0d48067b     ..t.*...R...{.H.
 8005cee:	0ce406a4 0c8006ce 0c1c06f9 0bb80723     ............#...
 8005cfe:	0b54074f 0af0077a 0a8c07a6 0a2807d3     O.T.z.........(.
 8005d0e:	09c40800 0960082c 08fc085a 08980887     ....,.`.Z.......
 8005d1e:	083408b4 07d008e2 076c0910 0708093d     ..4.......l.=...
 8005d2e:	06a4096b 06400998 05dc09c6 057809f3     k.....@.......x.
 8005d3e:	05140a20 04b00a4c 044c0a78 03e80aa4      ...L...x.L.....
 8005d4e:	03840ad0 03200afb 02bc0b25 02580b4f     ...... .%...O.X.
 8005d5e:	01f40b78 01900ba1 012c0bc9 00c80bf0     x.........,.....
 8005d6e:	00640c17 00000c3d ff9c0c62 ff380c86     ..d.=...b.....8.
 8005d7e:	fed40caa fe700ccc fe0c0cee fda80d0f     ......p.........
 8005d8e:	fd440d2f fce00d4e fc7c0d6c fc180d89     /.D.N...l.|.....
 8005d9e:	fbb40da6 fb500dc1 faec0ddc fa880df6     ......P.........
 8005dae:	fa240e0f f9c00e27 f95c0e3e f8f80e54     ..$.'...>.\.T...
 8005dbe:	f8940e69 f8300e7e f7cc0e92 f7680ea5     i...~.0.......h.
 8005dce:	f7040eb7 f6a00ec8 f63c0ed9 f5d80ee9     ..........<.....
 8005dde:	f5740ef8 f5100f07 f4ac0f15 f4480f22     ..t.........".H.
 8005dee:	f3e40f2f f3800f3b f31c0f46 f2b80f51     /...;...F...Q...
 8005dfe:	f2540f5b f1f00f65 f18c0f6e f1280f77     [.T.e...n...w.(.
 8005e0e:	f0c40f7f f0600f87                       ......`.

08005e16 <k_magic>:
 8005e16:	49414c4e                                 NLAI..

08005e1c <duration_table_ms.0>:
 8005e1c:	0000afc8 0001d4c0 00015f90 0001d4c0     ........._......
 8005e2c:	0000ea60 0001d4c0                       `.......
